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

linux 线程资源释放

Linux系统中程序的线程资源是有限的,表现为对于一个程序其能同时运行的线程数是有限的。而默认的条件下,一个线程结束后,其对应的资源不会被释放,于是,如果在一个程序中,反复建立线程,而线程又默认的退出,则最终线程资源耗尽,进程将不再能建立新的线程。
解决这个问题,有2种方式,系统自动释放线程资源,或者由另一个线程释放该线程资源。
注意,在这里,我认为进程运行后,本身,也是一个线程,主线程,主线程和主线程建立的线程共享进程资源。不同于其他线程,在于主线程运行结束后,程序退出,所有程序建立的线程也会退出。
系统自动释放
       如果想在线程结束时,由系统释放线程资源,则需要设置线程属性为detach。
代码上,可以这样表示:
pthread_t t;
pthread_attr_t a; //线程属性
pthread_attr_init(&a);  //初始化线程属性
pthread_attr_setdetachstate(&a, PTHREAD_CREATE_DETACHED);      //设置线程属性
::pthread_create( &t, &a, GetAndSaveAuthviewSDRStub, (void*)lp);                   //建立线程
其他线程释放
       另一种方式,则是由另一个线程将该资源释放。
代码上,可以这样表示:
pthread_t t;
::pthread_create( NULL, NULL, GetAndSaveAuthviewSDRStub, (void*)lp);
::pthread_join( t);
         ::pthread_join( t)等待线程t退出,并释放t线程所占用的资源。当然,这里也有个同步的功能,使一个线程等待另一个线程退出,然后才继续运行。
本文来自CSDN博客,转载请标明出处:file:///C:/Documents%20and%20Settings/christgz/桌面/线程资源释放%20-%20ustclu的专栏%20-%20CSDN博客.mht


相关文档:

Linux Assembly "Hello World" Tutorial, CS 200

 
by Bjorn Chambless
Introduction
The following is designed familiarize the reader with programming in x86 (AT&T
style, that produced by gcc) assembly under Linux and how to interface assembly
and higher-level language code (i.e. C). The tutorial will also briefly cover
debugging yo ......

Linux下cron的使用

ron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
  /sbin/service crond start //启动服务
  /sbin/service crond stop //关闭服务
  /sbin/service crond restart //重启服务
  /sbin/service crond ......

linux 信号表

名称             默认动作    说明
SIGHUP    终止进程    终端线路挂断
SIGINT   终止进程    中断进程
SIGQUIT  建立CORE文件   终止进程,并且生成core文件
SIGILL ......

Linux之路为何如此艰难?






<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
       在本文中,所谓“
Linux
之路”是指通向完美
Linux
桌面的道路。谈起
Linux
桌面,有人不屑一顾,嗤之以鼻。实际情况如何?
 
     11

......

linux 共享库基本使用[转]


linux 共享库基本使用[转]
xzq200 发表于 2007-6-16 11:02:00
0
推荐
1 创建和使用静态库
创建一个静态库是相当简单的。通常使用 ar 程序把一些目标文件(.o)组合在一起,
成为一个单独的库,然后运行 ranlib,以给库加入一些索引信息。
2 创建和使用共享库
特殊的编译和连接选项
-D_REENTRANT  &nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号