java+oracle+web(第八天) java 基础课程(一) 线程同步和死锁
2015-05-23 18:00
387 查看
synchronized
synchronized同步代码块同步函数
两种方式。
/*
死锁,共享资源自有自己的锁,然后相互访问都要解锁,
如果相互拿不到对方的锁,可能产生死锁
synchronized
例子说明:
两个锁中锁,
A和B,然后A有资源,然后B锁在A中锁了一个资源。
然后两个线程来访问。
引起死锁。在开发中要避免死锁。
*/
classLockTest implements Runnable
{
private boolean flag;
LockTest(boolean flag)
{
this.flag = flag;
}
public void run()
{
if(flag)
{
synchronized(MyLokc.locka)
{
System.out.println("1 get locka");
synchronized(MyLokc.lockb)
{
System.out.println("1get lockb");
}
}
}
else
{
synchronized(MyLokc.lockb)
{
System.out.println("2get lockb");
synchronized(MyLokc.locka)
{
System.out.println("2get locka");
}
}
}
}
}
classMyLokc
{
static Object locka = new Object();
static Object lockb = new Object();
}
classSingleDemo
{
public static void main(String[] args)
{
Thread t1 = new Thread( newLockTest(true));
Thread t2 = new Thread( newLockTest(false));
t1.start();
t2.start();
}
}
相关文章推荐
- java+oracle+web(第八天) java 基础课程(二) 多线程同步和死锁(2个线程、四个线程)
- java+oracle+web(第九天) java 基础课程(三) 多线程同步和死锁(2个线程、四个线程) JDK1.5新方法
- java+oracle+web(第九天) java 基础课程(四) 多线程其他小知识 终止、守护、等待
- JavaWeb基础+oracle实现简单简单分页商品浏览与加入购物车系统
- JavaWeb开发知识总结(一)-(oracle_基础)
- 教案:转换课程第4章Java Web技术基础
- 深入体验Java Web开发内幕-核心基础(看张孝祥的书的笔记一)
- 基础应用:java web三层架构配置入门
- 基础应用:java web三层架构程序实例
- Java Web Start 入门基础教程
- Java Web Start入门基础教程
- Java Web Start入门基础教程 2
- Java Web Start入门基础教程
- Java Web Start 入门基础教程
- 基础应用:java web三层架构程序实例(组图)
- zz[Java基础]关于web.xml配置的详细说明
- java weblogic oracle相关连接基础知识收集
- 利用Java技术开发Web网络课件浅议-Java基础-Java-编程开发
- 在Web应用中动态创建PDF文件-Java基础-Java-编程开发
- 高手是如何轻松玩转Java Web Start的-Java基础-Java-编程开发