在java中synchronized是多个线程共享同一段代码的锁。
当有多个线程并发执行同一块代码块时,加锁可以让一段时间内只有一个线程在执行,保证了业务的原子操作。
例如下面:
package andy.thread.traditional.test;
/**
* @author Zhang,Tianyou
* @version 2014年11月8日 下午11:02:53
*/
...
分类:
编程语言 时间:
2014-11-08 23:37:15
阅读次数:
302
要求:子线程循环10次后主线程循环100次之后子线程循环10次.....如此往复50次 子线程的每次执行10次不许被打断以及主线程的每次100次不许被打断 所以这两个操作可以加上同步所 1 package com.thread; 2 3 public class ThreadTest2 { ...
分类:
编程语言 时间:
2014-11-08 19:35:51
阅读次数:
171
此文章介绍多线程同步辅助类CountDownLatch的使用,并介绍两个例子说明...
分类:
编程语言 时间:
2014-11-06 13:08:19
阅读次数:
203
前面《秒杀多线程第四篇一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,这个问题包括了主线程与子线程的同步,子线程间的互斥,是一道非常经典的多线程同步互斥问题范例,后面分别用了四篇《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经...
分类:
编程语言 时间:
2014-11-06 12:50:59
阅读次数:
273
阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经典线程同步互斥量Mutex》前面介绍了关键段CS、事件Event、互斥量Mutex在经典线程同步问题中的使用。本篇介...
分类:
编程语言 时间:
2014-11-05 16:29:22
阅读次数:
276
阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》前面介绍了关键段CS、事件Event在经典线程同步问题中的使用。本篇介绍用互斥量Mutex来解决这个问题。互斥量也是一个内核对象,它用来...
分类:
编程语言 时间:
2014-11-05 16:25:18
阅读次数:
288
阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇 一个经典的多线程同步问题》《秒杀多线程第五篇 经典线程同步关键段CS》上一篇中使用关键段来解决经典的多线程同步互斥问题,由于关键段的“线程所有权”特性所以关键段只能用于线程的互斥而不能用于同步。本篇介绍用事件Event来尝试解决这个线程同步问题。首...
分类:
编程语言 时间:
2014-11-05 12:50:01
阅读次数:
256
上一篇《秒杀多线程第四篇 一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,本篇将用关键段CRITICAL_SECTION来尝试解决这个问题。本文首先介绍下如何使用关键段,然后再深层次的分析下关键段的实现机制与原理。关键段CRITICAL_SECTION一共就四个函数,使用很是方便。下面...
分类:
编程语言 时间:
2014-11-04 17:16:32
阅读次数:
269
上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,现在来个复杂点的。这个问题涉及到线程的同步和互斥,是一道非常有代表性的多线程同步问题,如果能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。程序描述:主线程启动10个子线程并将表示子线程序号的...
分类:
编程语言 时间:
2014-11-04 17:13:00
阅读次数:
222
demo in java:package com.multithread.main.sampleExample;import com.multithread.main.ExampleInterface;public class SampleExample extends ExampleInterfa...
分类:
编程语言 时间:
2014-11-04 17:01:23
阅读次数:
196