29.Linux/Unix 系统编程手册(上) -- 线程:介绍

1.线程	
	线程是允许应用程序并发执行多个任务的一种机制。
	一个进程可以包含多少线程,同一程序中的所有线程均会独立执行相同的程序,且共享一份全局内存区域,其中包括
  初始化数据段,未初始化数据段以及堆内存段。

  若线程未分离,则必须使用 pthread_join() 连接。如果未能连接,那么线程终止时将产生僵尸线程。
  pthread_join() 执行的功能类似于针对进程的 waitpid() 调用,不过二者有区别:
  1.线程之间的关系是对等的。进程中的任意线程都可以调用pthread_join()与该进程的其他线程连接起来。
  2.无法"连接任意线程",也不能以非阻塞方式进行连接。

  线程的分离:
   默认情况下,线程是可连接的,也就是说,当线程退出时,其他线程可以通过调用 pthread_join()来获取其返回状态。
 有时,我们不关心线程的返回状态,只希望系统在线程终止时能够自动清理并移除。在这种情况下,可以调用pthread_detach(),
 并向线程参数 thread 传入指定的线程标识符,将该线程标志为处于分离的状态。
   一旦线程处于分离状态,就不能再使用 pthread_join() 来获取其状态,也无法使其重返"可连接"状态。
   其他线程调用了 exit() 或者主线程执行了 return 语句时,即使遭到分离的线程还是会受到影响的。此时,不管线程处于可连接
 还是已分离状态,进程的所有线程会立即终止。换言之,pthread_detach()只是控制线程终止后发生的事情,而非何时或者如何终止线程。

pthread_create();
pthread_exit();
pthread_self();
pthread_equal();
pthread_join();
pthread_detach();

猜你喜欢

转载自blog.csdn.net/enlyhua/article/details/82928184