2017-11-01 1 views
1

スレッドの使い方は知られています。しかし、スレッドライブラリはどのように実装されていますか?私たちはstd::stringを持っているように、その機能を幾分複製することができます。ユーザ自身がC-文字列(char配列)を使用すると簡単です。スレッドの構築の背景の裏に

私はスレッドの場合、どのように最低限のC++データ型と関数(WINAPIなし)、std :: threadのようなクラスをクラスに作成することができますか?私は例をさせていただきたいと思い

、私の先生は:: STDを使用してから文字列を、私を禁止し、かつ唯一のC-文字列を使用することはできますが、私はOOP概念を使用することができました。..

class string_my 
{ 
     private: 
      char* str; 
     public: 
     // all the required func. to store the value in char* 
} 
+1

あなたは何をしたいですか?オペレーティングシステムAPIを使用せずに独自の文字列クラスを作成するか、スレッドクラスを作成しますか?あなたは後者をしたい場合:それは完全に不可能です。スレッド管理は、オペレーティングシステムのスケジューラの領域に属します。 – Jodocus

+0

@Jodocusスレッドクラスを作成したい....文字列クラスを使用してそれを例示しようとしていた – Vedant

+1

Linuxでは、[clone(2)](http://man7.org/linux/man-pages/man2/ clone_THREAD'引数を指定したシステムコールは、最終的にスレッドを生成します。 –

答えて

2

OS提供のスレッディングプリミティブ、または上記のOS提供のスレッドプリミティブに依存するいくつかの高レベルスレッディングライブラリ(boost::threadまたはstd::threadなど)を使用せずに、スレッドクラスを実装することはできません。