易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux 线程Detach&Join


1.等待线程
pthread_join 函数用来等待一个线程的结束,类似于进程的 wait 函数。
此函数将阻塞调用当前线程的进程,直到此线程退出。即这个函数是一个线程阻塞的函数,调用它的进程将一直等待到被等待的线程结束为,当函数返回时,处于被等待状态的线程资源被收回。如果执行成功,将返回 0,如果失败则返回一个非 0。此函数的第一个参数为被等待的线程标识符,此值为创建线程时返回的线程 ID,此线程必须同调用它的进程相联系,即创建该线程时不能指明此线程为独立的线程。第二个参数为一个用户定义的指针,指向一个保存等待线程的完整退出状态的静态区域,它可以用来存储被等待线程的返回值,如果在创建线程时 pthread_create 函数的第二个参数__attr 设置为 NULL,则此退出的状态信息会丢失。关于等待指定线程结束,需要注意以下几点:
(1)一个线程只能等待连接一个其他线程。
(2)发布连接操作的线程不一定是初始线程。
(3)如果有多个线程等待同一线程执行,只有一个线程能够得到正确的状态信息。
(4)有竞争关系的线程间的连接操作将返回一个错误。
(5)如果启动连接的线程被取消,则处于等待状态的线程可以被其他线程等待。
(6)如果目标线程在执行 pthread_join 前结束,则该调用将不会引起任何阻塞并立即返回。
(7)一个未被连接的非独立线程在线程结束前一直占用资源,直到创建它的进程结束。
pthread_join函数声明如下:
extern int pthread_join (pthread_t __th, void **__thread_return);
2.分离线程
分离线程是等待的逆操作。pthread_detach 库函数以欲操作的线程 ID 为其唯一的参数。如果执行成功,将使该线程与当前进程分离,使其成为一个独立的线程,并返回 0,当 thread终止时,系统将自动回收它的资源;如果执行失败,将不分离指定的线程并返回非零值。
pthread_detach 函数声明如下:
/* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
The resources of TH will therefore be freed immediately when it terminates, instead
of waiting for another thread to perform PTHREAD_JOIN on it. */
extern int pthread_detach (pthread_t __th) __THROW;
***********************************************
[原]在linux中查看两个函数:
 find / -name pthread.h -print
 cd /usr/include
 grep -n 'pthread_join' ./pthread.h
 grep -n 'pthread


相关文档:

用Linux下Perl脚本连接SQLServer

准备工作:
  用到的perl 扩展组件(modules)在上篇贴出.( win32::odbc 模块
)下载组件后按照Readme文件安装倒响应目录.配置好相应的odbc数据源.
  
  程序实现:
  使用
  use
Win32::ODBC;
  
  语句包含应使用的模块是win32::odbc,写出数据库
连接字符串
  
  $DSN = "DSN =
My DSN ......

嵌入式Linux开发需要的参考资料

引导:
如需获得对 vmlinux 和 zimage 之间区别的极好解释,请在 Alessandro Rubini 编写的“Kernel Configuration: dealing with the unexpected(Linux Magazine)的一文中找到“Booting your kernel”一节。
有关内核、映像和引导过程的更多信息,请阅读中央昆士兰大学(Central Queensland Universit ......

解决VMware上RedHat Linux系统时间过快或过慢的问题

    VMware中的RedHat Eneterprise
Linux 5系统时间总比主机的Windows XP慢。即使用date命令设置Linux时间与Windows XP时间一致,Linux的时间仍会逐渐的慢下来。这是很头痛的问题,如果不能解决,当在两个系统间交换文件时,可能会导致编译出现异常。电脑所使用的CPU是Intel Core2 Duo T7250,主频2.0G;而 ......

双网卡linux快速搭建nat主机共享上网!

这是在实验室搭建局域网时的配置写在这里吧,等在回忆那段大学生活时还是很美好的!
环境:外网IP 202.206.249.186 子网掩码 255.255.255.0 默认网关 202.206.249.1
          内网IP192.168.0.1           子网掩码 255 ......

在Linux下部署JDK环境

1. 去http://java.sun.com/javase/downloads/index.jsp下载一个Linux Platform的JDK。
2. 上载
# chmod 755 jdk-6u2-linux-i586-rpm.bin
#   ./jdk-6u2-linux-i586-rpm.bin
3. 程序会自动生成文件
    执行
    # rpm -ivh jdk-6u11-linux-i586.rpm
4. 设置环境变量
  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号