c++ 多线程

来源:互联网 发布:网络动画歌曲视频 编辑:程序博客网 时间:2024/06/07 12:35

多线程:thread;

           线程存在于进程之中,进程内所有全局资源对于内部每个线程均是可见的;

进程内全局资源:

           代码区:这意味着当前进程空间内所有可见的函数代码;

           静态存储区:全局变量,静态变量;

           动态存储区:堆空间;

线程内局部资源:

           本地栈空间:函数内部局部变量

           部分寄存器变量。

线程状态:

   就绪:参与调度,等待被执行。

   运行:占用cpu,正在运行中;

   休眠:暂不参与调度,等待特定事件发生。
   中止:已经运行完毕,等待回收线程资源

 

thread类:

 

#ifndef __THREAD__H_

#define __THREAD__H_

class Thread

{

public:

  Thread();

  virtual ~Thread();

  int start (void * = NULL);

  void stop();

  void sleep (int);

  void detach();

  void * wait();

protected:

  virtual void * run(void *) = 0;

private:

 

  …  

}; 

#endif

 

 

接着用一个类继承thead类即可。这点java和c++很像;

 

 

线程的 可会合(default),相分离状态解释:

可会合:主线程等待子线程执行完毕,子线程和主线程会合。系统通过调用wait函数实现;

相分离:子线程无须和主线程会合,子线程进入终止态,系统立即销毁线程,回收资源。系统通过调用detached函数实现;

 

原创粉丝点击