进程和线程
明风的博客
这个作者很懒,什么都没留下…
展开
-
主线程和子线程的同步控制
一个线程的结束有两种途径,一种是象我们下面的例子一样,函数结束了,调用它的线程也就结束了;另一种方式是通过函数pthread_exit来实现。另外需要说明的是,一个线程不能被多个线程等待,也就是说对一个线程只能调用一次pthread_join,否则只有一个能正确返回,其他的将返回ESRCH 错误。在Linux中,默认情况下是在一个线程被创建后,必须使用此函数对创建的线程进行资源回收,但是可以设原创 2015-08-17 13:45:35 · 5026 阅读 · 1 评论 -
一个经典的消费者和生产者的实现(linux )
#include #include #define BUFFER_SIZE 16 // 缓冲区数量 struct prodcons { // 缓冲区相关数据结构 int buffer[BUFFER_SIZE]; /* 实际数据存放的数组*/ pthread_mutex_t lock; /*原创 2015-08-17 16:58:09 · 1138 阅读 · 0 评论 -
java 线程间数据共享和android 线程间数据共享异同
(一)Java多线程编程访问共享对象和数据的方法1、每个线程执行的代码相同,例如,卖票:多个窗口同时卖这100张票,这100张票需要多个线程共享。2、每个线程执行的代码不同,例如:设计四个线程,其中两个线程每次对j增加1,另外两个线程每次对j减少1。a、如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个对象中有共享数据。卖票就可以这样做,每个窗口都在做卖票任务,卖的票原创 2015-11-30 15:23:22 · 2211 阅读 · 0 评论 -
多线程编程的常用类(CountDownLatch, Semaphore, CyclicBarrier 和 Exchanger)
(1)CountDownLatch/**CountDownLatch类是一个同步计数器,构造时传入int参数,该参数就是计数器的初始值,每调用一次countDown()方法,计数器减1,计数器大于0 时,await()方法会阻塞程序继续执行CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种特性,可以让主线程等待子线原创 2016-01-25 10:59:23 · 1306 阅读 · 0 评论