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

linux多线程学习(二)——线程的创建和退出

 在上一篇文章中对线程进行了简单的概述,它在系统中和编程的应用中,扮演的角色是不言而喻的。学习它、掌握它、吃透它是作为一个程序员的必须作为。在接下来的讲述中,所有线程的操作都是用户级的操作。在LINUX中,一般pthread线程库是一套通用的线程库,是由POSIX提出的,因此他的移植性是非常好的。
      创建线程实际上就是确定调用该线程函数的入口点,这里通常使用的函数是pthread_create。在线程创建之后,就开始运行相关的线程函数。在该函数运行结束,线程也会随着退出。这是其中退出线程的一种方法,另外一种退出线程的方法就是调用pthread_exit()函数接口,这是结束函数的主动行为。在这里要注意的是,在使用线程函数时,不要轻易调用exit()函数,因为这样会使整个进程退出,往往一个进程包含着多个线程,所以调用了exit()之后,所有该进程中的线程都会被结束掉。因此,在线程中,利用pthread_exit来替代进程中的exit。
      由于一个进程中的数据段是共享的,因此通常在线程退出之后,退出线程所占的资源并不会随着线程的结束而得到释放。正如进程之间可以调用wait()函数来同步中指并释放资源一样,线程之间也有类似的机制,那就是pthread_join函数.pthread_join可以将当前线程挂起,等待线程的结束,这个函数是一个阻塞函数,调用它的函数将一直等待到被等待的线程结束为止,当函数返回时,被等待函数的资源就会被释放。
1、函数语法简述。
pthread_create
头文件:       pthread.h
函数原型:    int pthread_create (pthread_t* thread, pthread_attr_t* attr,
                                                  void* (start_routine)(void*), void* arg);
函数传入值: thread: 线程标识符
                   attr: 线程属性设置
                  


相关文档:

实战Linux Bluetooth编程(六) L2CAP编程实例

例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
 如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......

实战Linux Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

linux下修改主机名

 
在linux下修改主机名有两种方法:
一:使用hostname命令
   方法:[root@hening ~]# hostname abc
   [root@hening ~]# su
   [root@abc ~]#
   切忌:使用这个命令修改主机名只能在当前shell有效,如果重启系统就会失效。
二:修改linux主机的配置文件
 &nb ......

linux下vi命令大全

linux下vi命令大全
默认分类   2009-04-12 14:59   阅读1663   评论2  
字号: 大大  中中  小小
文本编辑器是所有计算机系统中最常用的一种工具。使用最为广泛的是vi,而vi命令繁多,各大论坛基本上都有总结!为了大家学习方便,请自由转发!   &nb ......

Linux中的shell命令参数详解

命令行
     用户登录到Linux系统时,可以看到一个shell提示符,标识了命令行的开始。用户可以在提示符后面输入任何命令及参数。例如:
  
  $ date
  
  二 11 23 01:34:58 CST 1999 
  
  $ 
  
  用户登录时,实际进入了shell,它遵循一定 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号