为什么主线程必须用pthread_join()才能执行void echomsg(int t),而使用sleep不可以呢?
#include
by wangxiaoguang - C/C++ - 2008-09-07 14:57:18 阅读(4536) 回复(36)
某个大型的服务端程序,用到进程、线程、信号、信号灯、共享内存、Socket等, 里面有一个小程序,如果用sleep就没问题,如果用usleep,虽然能编译,但运行起来后就有问题了。 不知道sleep和usleep到底有什么区别?看了man里面,好像说没有什么区别。
我程序里的sleep(1), 停1秒,由于程序比较大,使多个sleep(1)影响了速度。 想要换成比一秒小的时间间隔,找到了函数nanosleep(),它可以处理纳苗级的时间。但在SCO Unix 里编译 struct timespec slptm2 ;这个结构时报错: test.c", line 22: error: incomplete struct/union/enum timespec: slptm2 makefile 用的 cc -o 但在SCO 下是支持 struct timeval tstart 的。 我查了两个时间结构的区别: timespec{ 域1,秒 域2,纳秒...
wait 和使用synchronized的方法分别使线程在对象的wait pool和lock pool等待,那因调用sleep 和join的线程又阻塞在哪里了呢,是虚拟机的线程阻塞队列?
国庆之前,得各位的指导有了一点进步. 现在又碰到好多困难,还是TC的问题. 我中断处理函数里很简单.第一次中断过来启动tc2,第二次中断过来读tc2的值.然后在应用程序里一直read查询,这种模式是受单片机程序的影响.感觉只要调用了read以后,中断就产生不了了,好象中断跟read冲突似的。 是哪设置的问题,还是得用上面的那些函数啊?
在hpux下使用aCC进行编程。 请教两个函数的名字,好查帮助啊。 (1)一个是得到线程号的函数,我估计是类似GetThreadId之类的名字。 (2)另一个是睡眠函数,在帮助找到的格式是 ( sleep 105; command )& 这在程序中怎么用啊?
在dbxtra调试程序中用trace命令如下: trace 10 disable a1,a2 set sleep=10 问:怎样把trace 命令 和变量sleep连接起来,不连接的时候在监控窗口看不到a1,a2的值。