![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络&多线程
NowDoIT
这个作者很懒,什么都没留下…
展开
-
Linux系统下的多线程编程入门【上】
引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。 使用多线程的理由之一是和进程相比,它是一种非常转载 2010-12-27 10:04:00 · 293 阅读 · 0 评论 -
多线程编程的原则以及Sem信号量和Mutex互斥锁的区别 (一)
1. 尽可能的使用mutex理念去设计架构2. 容易发生的问题 A. 循环死锁(互斥锁) B. 非递归死锁 C. 数据不同步 D. 过于积极的垃圾回收,内存清理3. 几个原则 A. 操作尽可能私有化 B. Public方法是在任何Thread、任何时刻可以调用的 C. 尽可能的使用mutex方式,而非信号量机制 D. 必须要对潜在的假设进行判断,是否符合实际条件? E. 获得锁之后,尽可能的少操作,以避免在get()内部继续调用资源锁原创 2011-05-27 11:20:00 · 1601 阅读 · 0 评论 -
多线程编程的原则以及Sem信号量和Mutex互斥锁的区别 (二)
1. 何时Sem不够,还需要使用Mutex? 假设有共享的资源sum,与之相关联的mutex 是lock_s.假设每个线程对sum的操作很简单的,与sum的状态无关,比如只是sum++.那么只用mutex足够了.程序员只要确保每个线程操作前,取得lock,然后sum++,再unlock即可.每个线程的代码将像这样:add(){ pthread_mutex_lock(lock_s); sum++; pthread_mutex_unlock(lock_s);}原创 2011-05-27 16:44:00 · 657 阅读 · 0 评论