- 浏览: 146117 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
lyaqys:
lz实现的OptimisticExclusiveLock有点问 ...
java park/unpark 【java并发】基于JUC CAS原理,自己实现简单独占锁
很多书都说wait会释放线程加的锁,其实经过试验不是这样的,
wait只是释放本对象的this锁
public class TestWait {
public static final Object a=new Object();
public static final Object b=new Object();
public static Runnable r = null;
public static void main(String[] args) throws InterruptedException {
r = new A();
new Thread(r).start();//a =1//a的值是一样的
// new Thread(r).start();// a=1
Thread.sleep(10);
Runnable rr = new B();
new Thread(rr).start();// 必须等待
}
}
class A implements Runnable{
int a = 0;
@Override
public void run() {
a=+1;
System.out.println("A"+a);
synchronized (this) {//
synchronized (TestWait.a) {
try {
wait(10000);//仅仅是释放this锁,即对本对象的枷锁
System.out.println("....");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
class B implements Runnable{
@Override
public void run() {
System.out.println("b....");
synchronized (TestWait.r) {// 假如是 TestWait.r , 则需要等待wait(10000); 结束
System.out.println("b");
}
}
}
wait只是释放本对象的this锁
public class TestWait {
public static final Object a=new Object();
public static final Object b=new Object();
public static Runnable r = null;
public static void main(String[] args) throws InterruptedException {
r = new A();
new Thread(r).start();//a =1//a的值是一样的
// new Thread(r).start();// a=1
Thread.sleep(10);
Runnable rr = new B();
new Thread(rr).start();// 必须等待
}
}
class A implements Runnable{
int a = 0;
@Override
public void run() {
a=+1;
System.out.println("A"+a);
synchronized (this) {//
synchronized (TestWait.a) {
try {
wait(10000);//仅仅是释放this锁,即对本对象的枷锁
System.out.println("....");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
class B implements Runnable{
@Override
public void run() {
System.out.println("b....");
synchronized (TestWait.r) {// 假如是 TestWait.r , 则需要等待wait(10000); 结束
System.out.println("b");
}
}
}
发表评论
-
java 栈内存解惑
2013-10-23 23:41 638int j = 0; j = j++; ... -
毗连“"aa"”和“"bb"”不能给出一个有效的预处理标识符,gcc编译错误表
2013-10-01 18:54 2860gcc bug : ##’ cannot appear at ... -
探索 Pexpect,第 2 部分:Pexpect 的实例分析
2013-08-19 11:08 1665原文: http://www.ibm.com/develope ... -
shell 文件处理
2013-08-16 15:21 643linux文件合并去重 cat loginpc.txt | ... -
进程监控
2013-08-12 15:40 610*/10 * * * * sh /opt/fetch/mint ... -
建议编译的时候加警告 atof
2013-08-07 20:46 668#include <stdlib.h> ... -
监控脚本的配置
2013-08-05 19:51 56710 9,12,18 * * * /usr/local/bin ... -
feodra 17 安装 chrome
2013-08-04 01:35 7221: 下载:http://www.google.cn/chro ... -
Sudo提权出现:xx用户不在 sudoers 文件中
2013-08-03 20:22 870Sudo提权出现:xx用户不在 sudoers 文件中 症状 ... -
select,epoll,poll比较
2013-07-28 17:13 649select,poll,epoll简介 se ... -
根据nestat 的端口,查看访问的程序
2013-07-19 12:15 894[@zw-76-82 ~]# lsof -i tcp:3398 ... -
Google Guava Collections 使用介绍
2013-07-16 18:10 650Google Guava Collections 使用介绍 J ... -
Google Collections(Guava)中强大的Concurrent MapMaker
2013-07-16 18:07 1298仔细研究了刚发布1.0版本的Google Collection ... -
vim7.3 编辑中文字符的文件会显示乱码
2013-06-29 03:16 767默认编译安装vim7.3后打开含有中文字符的文件会显示乱码,g ... -
vim 退格键(backspace)不能用
2013-06-29 01:59 1633两个步骤: 1.去掉讨厌的有关vi一致性模式,避免以前版本的 ... -
ubuntu pdf乱码解决办法
2013-06-29 01:51 608ubuntu pdf乱码解决办法 第一步,在线安装中文语言支持 ... -
java wait 研究
2013-06-28 17:07 735[color=red]java wait 的使用必须放在实例对 ... -
java钩子函数的使用已经kill
2013-06-27 22:31 1511package com.aircoder.test; imp ... -
java获取所有的线程信息
2013-06-24 20:02 1564public class T2 { public sta ... -
java 获取mysql datetime 时间注意
2013-05-16 14:43 1475class SPubinfo implements RowMa ...
相关推荐
java多线程之wait,notify的用法([ 详解+实例 ]).
JAVAWAIT和NOTIFY的用法.pdf
Java多线程的样例代码,工程,内含wait()、notify()和sychronized的使用范例。
java多线程下wait和notify的作用
使用Java多线程的wait和notify方法实现最简单的生产者消费者模式
Java 同步方式 wait和notify/notifyall
近期服务器出现大量time_wait的TCP连接造成服务器连接数过多而最终导致tomcat假死状态。连接服务器查看连接数的时候提示如下。 [root@test apache-tomcat-7.0.53]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a...
主要介绍了Java wait和notifyAll实现简单的阻塞队列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
import java.util.Scanner; class Bissextile{ public static void main(String[] arge){ System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in...
一个理解wait()与notify()的例子,让你更好理解.
wait()、notify()和notifyAll()方法2---马克-to-win java视频
Java线程中wait、await、sleep、yield、join用法汇总,文章里面总结了这些关键字的用法,并且里面带有源码帮助分析用法,此一文就可以理解这些关键字用法,推荐拥有
java-wait和notify的用法.pdf
主要介绍了Java多线程中wait、notify、notifyAll使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java中多线程编程notify、wait的使用
主要介绍了java Object wait方法详细介绍的相关资料,需要的朋友可以参考下
源码—Java多线程5—死锁和wait notify notifyAll
主要介绍了Java wait和notify虚假唤醒,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
java sleep和wait的解惑.docx
java多线程设计wait.docx