天行健,君子以自强不息!
发布时间:2012-12-11 21:07:00
一、线程同步线程同步的两种基本方法:A. 信号量 它的作用如同看守一段代码的看门人。 控制一组相同对象的访问时, 比如从5条可用的电话线中分配一条给某个线程的情况, 就更适合计算信号量。 最简单的信号量--二进制信号量,它只有0和1两种取值; 更通用的信号量--计数信号量,它有更大的取值范围。B. 互斥量 它的作用如同保护代码段的一个互斥设备。 如果想控制任一时刻只能有一个线程可......【阅读全文】
发布时间:2012-12-11 20:57:11
一、什么是线程在一个程序中的多个执行路线就叫做线程(thread)。更准确的定义是:线程是一个进程内部的一个控制序列。事实上,所有的进程都至少有一个执行线程。创建新进程的fork系统调用与创建新线程的区别:当进程执行fork调用时, 将创建出该进程的一份新副本。 这个新进程拥有自己的变量和自己的PID, 它的时间调度也是独立的, 它的执行(通常)几乎是完全独立于父进程。当在进程中创建一个新线程时, 新的线程拥有自己的栈, 因此也有自己的局部......【阅读全文】
发布时间:2012-12-09 20:34:39
前言: Bind(): Address already in use引出来的问题:前一篇文章《linux socket 编程示例》在用CTRL+C结束进程后,再启动时会出现:Bind(): Address already in use的错误提示,并导致程序直接退出; 用$netstat -an |grep 8080或$ps aux |grep 8080都还能看到刚才用Ctrl+C“强制结束”了的进程,端口还是使用中,只能用kill结束进程,才能收回端口,很是麻烦。在代码中添加:int optval;optval = 1;ret = setsockopt( sock, SOL......【阅读全文】