Linux下thread编程(三)
作者:Sam(甄峰) sam_cdoe@hotmail.com
1.创建thread.
int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr,
void *(*start_routine)(void*), void *restrict arg);
参数1:pthread_t *restrict thread:创建thread的thread ID.
参数2:const pthread_attr_t *restrict attr:创建线程的属性。
参数3:void *(*start_routine)(void*):thread服务程序。
参数4:void *restrict arg:thread服务程序参数。
2. 等待目标线程终止:
pthread_join() 函数会一直阻塞调用线程,直到指定的线程终止。
指定的线程必须位于当前的进程中,而且不得是分离线程。所有创建时属性为PTHREAD_CREATE_JOINABLE的非分离thread. 最终都需要调用pthread_join() or pthread_detach() 。这样thread所占资源和 Thread ID 才被释放。
3. 分离thread:
int pthread_detach(pthread_t thread);
pthread_detach()指出当thread 结束时,thread所占资源和Thread ID会被释放和再利用。如果调用pthread_detach()时,thread没有结束,它并不会导致thread退出。它只对PTHREAD_CREATE_JOINABLE 非分离thread有效。
4. 获取thread ID:
pthread_t pthread_self(void);
返回调用thread的thread ID.
5. 比较thread ID:
int pthread_equal(pthread_t t1, pthread_t t2);如果 tid1 和 tid2 相等,pthread_equal() 将返回非零值,否则将返回零。
6. 向thread发信号:
int pthread_kill(pthread_t thread, int sig);
tid 所指定的线程必须与调用线程在同一个进程中。sig 参数必须来自 signal(5) 提供的列表。
7. 退出线程:
void pthread_exit(void *value_ptr);
pthread_exit()用来终止调用thread并置位value_ptr.这个值会交给pthread_join。
Thread的取消:
同一进程内,某个Thread可以向其它thread发送取消要求,要求目标thread退出运行。
取消请求的处理方式取决于目标线程的状态。状态由以下两个函数确定:pthread_setcancelstate() 和 pthread_setcanceltype()。
pthread_setcancelstate() 启用或禁用线程取消功能。创建线程时,缺省情况下线程取消功能处于启用状态。
pthread_setcanceltype() 可以将取消类型设置为延迟或异步模式。创建线程时,缺省情况下会将取消类型设置为延迟模式。在延迟模式下,只能在取消点取消线程。在异
相关文档:
linux下手动删除数据库实例,直接删除相应的目录就可以了,不多说了....
1. $ORACLE_HOME/dbs/
[oracle9@frogger dbs]$ pwd
/u01/app/oracle/product/9.2.0.1/dbs
[oracle9@frogger dbs]$ rm inittest02.ora
[oracle9@frogger dbs]$ rm orapwdtest02
2. $ORACLE_BASE/oradata/SID
[oracle9@frogger oradata]$ ......
尽管不愿意过分声张,但联想确实在重回Linux的老路。11月12日,高通CEO Paul Jacobs透露了联想一款基于ARM架构
Snapdragon处理器的智能本产品,这种产品的定位介于智能手机与上网本之间。Jacobs还宣称这款基于Linux的智能本将于明年1月份召开的
CES计算机电子展会上正式露面,而联想随后也对这则消息进行了确认, ......
在配置Apache James Mail Server 的时候,Linux 默认占用了25号端口,需要把它关掉才能运行James Mail Server。
nmap localhost : 查看占用的端口。
由于服务是由守护进程维护,所以 找到该服务的PID,然后kill掉就OK了。
netstat -anep | grep 25
tcp 0 & ......
作者:Sam (甄峰) sam_code@hotmail.com
Sam前些天在提供一个库给别的公司时,因为不喜欢使用pthread_jion等函数,被人骂为垃圾程序。呵呵,之前因为在写多thread程序时,习惯让每个thread都为detach属性,这样他们就可以自我管理。而不需要再由别人回收资源。呵呵,不说这么多了,把POSIX thread方面的东西记下来 ......