在前面的一篇中,总结了如何使用Lock和Condition对象。我们先总结一下有关锁和条件的关键之处:
锁用来保护代码片段,任何时刻只能有一个线程执行被保护的代码。锁可以管理试图进入被保护代码段的线程。
锁可以拥有一个或多个相关的条件对象。每个条件对象管理那些已经进入被保护的代码段但还不能运行的线程。
synchronized关键字
Java中的每一个对象都有一个内部锁;...
分类:
编程语言 时间:
2015-01-30 09:17:35
阅读次数:
234
上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,如今来个复杂点的。这个问题涉及到线程的同步和相互排斥,是一道很有代表性的多线程同步问题,假设能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。程序描写叙述:主线程启动10个子线程并将表示子线程...
分类:
编程语言 时间:
2015-01-29 19:24:40
阅读次数:
170
当多个线程共享相同的内存时,需要确保每个线程看到一致的数据视图,当多个线程同时去修改这片内存时,就可能出现偏差,得到与预期不符合的值。为啥需要同步,一件事情逻辑上一定是有序的,即使在并发环境下;而操作系统对于多线程不会自动帮我们串行化,所以需要我们通过操作系统提供的同步方式api,结合自己的业...
分类:
编程语言 时间:
2015-01-27 12:53:19
阅读次数:
203
停止线程
本来Thread类中有一个stop方法可以用来停止线程,但是却过时了,那么又该怎样停止线程呢?
线程运行其实运行的是run方法中的代码,那么只要将run方法停止,那么线程也就随之停止了。
一般线程的运行与循环相结合,那就好办了。将标记修改,那么run方法就会结束。
class StopThread implements Runnable {
private boolean fl...
分类:
编程语言 时间:
2015-01-23 18:23:37
阅读次数:
189
这是马士兵老师的Java视频教程里的一个生产者消费者问题的模型[java]view plaincopypublicclassProduceConsumer{publicstaticvoidmain(String[]args){SyncStackss=newSyncStack();Producerpr...
分类:
编程语言 时间:
2015-01-22 17:59:11
阅读次数:
202
同步代码块是一种有效实现操作原子性的方法,上一章我们讲了一些同步的原子操作的基础。
现在我们回忆一下上一章的两个问题。
1:不同的synchronized的写法有什么区别,又该怎么写创建线程的代码呢?
以class实例对象作为锁的写法
写法1
package com.home.thread;
/**
* @author gaoxu
*
*/
public class SafeT...
分类:
编程语言 时间:
2015-01-20 23:57:52
阅读次数:
393
class Res {
String name;
String sex;
}
class Input implements Runnable {
private Res r;
public Input(Res r) {
// TODO Auto-generated constructor stub
this.r = r;
}
public void run() {
i...
分类:
编程语言 时间:
2015-01-18 21:09:50
阅读次数:
265
上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,如今来个复杂点的。这个问题涉及到线程的同步和相互排斥,是一道很有代表性的多线程同步问题,假设能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。程序描写叙述:主线程启动10个子线程并将表示子线程...
分类:
编程语言 时间:
2015-01-16 22:09:57
阅读次数:
171
在了解多线程之前我们先了解一下进程和线程的关系 一个程序至少有一个主进程,一个进程至少有一个线程。 为了保证线程的安全性请大家看看下面介绍?Delphi多线程同步的一些处理方案大家可以参考:http://www.cr173...
分类:
编程语言 时间:
2015-01-09 19:37:29
阅读次数:
356
Java 同步块(synchronized block)用来标记方法或者代码块是同步的。Java同步块用来避免竞争。本文介绍以下内容:Java同步关键字(synchronzied)实例方法同步静态方法同步实例方法中同步块静态方法中同步块Java同步示例Java 同步关键字(synchronized)...
分类:
编程语言 时间:
2015-01-09 17:06:24
阅读次数:
286