当前位置:  技术问答>linux和unix

100分!!! 进程和线程暂停的问题。

    来源: 互联网  发布时间:2016-07-01

    本文导语:  我现在的状况是。 一个主进程按数据库资源的不同起不同数量的线程, 每个线程做同样的事情,资源共享的问题已经解决, 现在就是如果计算线程超时的问题。 就是在进程里面先等候N秒, 如果有线程没有做完就...

我现在的状况是。
一个主进程按数据库资源的不同起不同数量的线程,
每个线程做同样的事情,资源共享的问题已经解决,
现在就是如果计算线程超时的问题。


就是在进程里面先等候N秒,
如果有线程没有做完就将其杀死。
这个等候N秒,我用了sleep不行,整个进程在等候,包括下面的线程,
就是想用一种方法,使主进程处于等待,但线程仍然在工作。


linux环境。


谢谢各位达人!哈哈!


|
sleep会让整个进程休眠,可以使用linux系统计时器或者硬件计时器,你可以参考一下
http://www.ibm.com/developerworks/cn/linux/l-cn-clocks/

|
Linux实现了7个POSIX 1003.1e规定的能力,还有21个(截止到2.6.13版本的内核)Linux所特有的,这些能力在/usr/src/linux/include/linux/capability.h文件中定义。其细节如下:

  能力 编号 解释

  CAP_CHOWN 0 允许改变文件的所有权

  CAP_DAC_OVERRIDE 1 忽略对文件的所有DAC访问限制

 CAP_DAC_READ_SEARCH 2 忽略所有对读、搜索操作的限制

  CAP_FOWNER 3 如果文件属于进程的UID,就取消对文件的限制

  CAP_FSETID 4 允许设置setuid位

  CAP_KILL 5 允许对不属于自己的进程发送信号

  CAP_SETGID 6 允许改变组ID

  CAP_SETUID 7 允许改变用户ID

  CAP_SETPCAP 8 8 允许向其它进程转移能力以及删除其它进程的任意能力

  CAP_LINUX_IMMUTABLE 9 允许修改文件的不可修改(IMMUTABLE)和只添加(APPEND-ONLY)属性

  CAP_NET_BIND_SERVICE 10 允许绑定到小于1024的端口

  CAP_NET_BROADCAST 11 允许网络广播和多播访问

  CAP_NET_ADMIN 12 允许执行网络管理任务:接口、防火墙和路由等,详情请参考/usr/src/linux/include/linux/capability.h文件

  CAP_NET_RAW 13 允许使用原始(raw)套接字

  CAP_IPC_LOCK 14 允许锁定共享内存片段

 CAP_IPC_OWNER 15 忽略IPC所有权检查

  CAP_SYS_MODULE 16 插入和删除内核模块

  CAP_SYS_RAWIO 17 允许对ioperm/iopl的访问

  CAP_SYS_CHROOT 18 允许使用chroot()系统调用

  CAP_SYS_PTRACE 19 允许跟踪任何进程

  CAP_SYS_PACCT 20 允许配置进程记帐(process accounting)

  CAP_SYS_ADMIN 21 允许执行系统管理任务:加载/卸载文件系统、设置磁盘配额、开/关交换设备和文件等。详情请参考/usr/src/linux/include/linux/capability.h文件。

  CAP_SYS_BOOT 22 允许重新启动系统

  CAP_SYS_NICE 23 允许提升优先级,设置其它进程的优先级//

  CAP_SYS_RESOURCE 24 忽略资源限制

  CAP_SYS_TIME 25 允许改变系统时钟

  CAP_SYS_TTY_CONFIG 26 允许配置TTY设备

  CAP_MKNOD 27 允许使用mknod()系统调用

  CAP_LEASE 28 Allow taking of leases on files

|
sleep 可能导致整个进程休眠,
使用 select 看看。

|
很容易啊,你主进程开个alarm就是了。 
然后在SIGALRM的触发函数里杀死你的线程就ok了啊。

http://linux.ccidnet.com/art/302/20071226/1322683_1.html

|
pthread_join 能够等待线程结束。

|
select应该满足lz要求

|
pthread_join 和pthread_detach 两个函数都可以实现你想要的

|
我很疑惑!在启动其他的线程后,主线程sleep会导致其他线程也休眠吗?usleep也会?
如果用alarm的话,会很危险啊!如果其他的线程也有用到alarm的话,后果是很难预料的!
不用sleep的话,你可以单开一个线程计时Ns,然后在开启所有线程后,用pthread_join等待这个线程结束。
然后用pthread_kill检查哪些线程存在或者用它将线程都杀死。


|
或者用select计时

|
再或者  struct timespec delay;
    delay.tv_sec = 2;
    delay.tv_nsec = 0;
    pthread_delay_np( &delay );

    
 
 

您可能感兴趣的文章:

  • 主进程有两个线程,fork子进程后复制主进程两个线程的内存么?
  • 如何实现这样的API,可同时被不同的进程/线程使用,但是又不区分进程/线程?
  • 请问:进程创建的线程是怎样运行的啊,线程的处理函数运行完了,线程就退出了吗?
  • 如果父进程有多个线程,那么它的子进程也该拥有这些线程
  • 一个进程创建了两个线程,如何使得当任何一个线程(比如线程a)结束时,同时也结束线程b,也就是使两个线程一起死掉,怎么办呢?
  • 如何让子进程继承父进程的线程
  • 请问,在一个进程中创建多线程时如何能避免不同的线程获得同一个线程标识
  • 在一个进程的主线程中如何判断自己创建的线程是否存在?
  • Linux中最多同时可以开多少个进程,一个进程可以开多少个线程?
  • 请教:线程中调用一个阻塞的方法后,进程及其它线程会阻塞么?
  • 请问在单进程,多线程程序里,线程间使用IPC的信号量来同步,能行吗?
  • linux线程与进程的问题
  • 在程序中启动一个进程(不是线程),如何知道该进程已运行结束
  • 如何准确理解“程序”、“进程”、“线程”这三个概念
  • 进程和线程的区别
  • 请问:linux下的子进程与线程的区别
  • linux进程(线程)运行过程中如何获取本进程当前的内存使用状况,统计信息?
  • socket+多进程+多线程
  • sleep是进程域还是线程域的?
  • 线程上下文切换和进程上下文切换那个代价大?
  • 关于linux进程暂停功能。
  • 暂停进程调度
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 多进程问题 子进程读取内容 读完挂起,父进程写 写入后唤醒子进程
  • 请教,进程通讯问题,除了父子进程能进行通讯外,任意两个进程都可以吗?
  • 父进程退出后子进程的问题
  • 僵死进程父进程的问题
  • 求教 "客户进程" 与 "守护进程" 间通信问题
  • 子进程与父进程通信问题?急
  • 一个关于父进程和子进程的问题
  • 请教一个关于子进程和父进程竞争的问题
  • 多个进程共用一个信号量,如果某个进程死掉,此时又将信号量锁定,其它进程就死掉,有什么办法可以解决这一问题
  • 求教一个关于子进程与父进程socket描述符的一个问题
  • 请教:进程创建和进程状态有关问题
  • unix中有关父进程和子进程的问题
  • lunix下,用java在代码中启动另外一个进程遇到的问题,新启动的进程被阻塞.
  • unix进程问题,为什么关了控制界面进程结束了
  • Linux下请教一个父进程杀死子进程的问题.
  • 父进程中关闭子进程的问题??急待解决
  • linux僵尸(zombie)进程介绍及清除 iis7站长之家
  • 各位大侠,请教一个LINUX存储管理的问题,在页换出时系统要锁住正在被换出的进程,若系统不锁住该进程,会发生什么状况?
  • 关于控制并发进程数量和进程回收问题,请各位兄弟指点!急!!!!!!!
  • 急!急!fork()一个子进程,然后再子进程中调用execl出了问题。
  • linux僵尸(zombie)进程介绍及清除
  • 进程Afork进程B,进程Bfor进程C,如果进程C退出发出SIGCHLD,A进程是否可以收到
  • Ubuntu查看内存,进程相关命令介绍
  • 如果一个server进程要fork许多子进程,但不等待子进程终止,也不希望子进程结束后处于僵进程状态直到父进程终止。请问可采用什么方法实现
  • linux下进程占用内存空间详解
  • 在多进程中父进程frok子进程,怎样让子进程自举,脱离父进程,而且父进程不退出
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • fock()开出的子进程的进程ID是否进程ID都大于父进程的?
  • android 4.0 托管进程介绍及优先级和回收机制
  • 父进程等待子进程n秒,如果子进程正常退出,父进程立即继续向下执行,如果子出现进程故障一直不退出,父进程等待n秒后继续向下执行,请问
  • linux下进程间通信:共享内存原理及具体用法举例(基于c/c++语言)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3