`

java wait 研究

阅读更多
[color=red]java wait 的使用必须放在实例对象本身的锁的范围内,
而且wait对于锁的释放仅仅只对 实例对象本身的锁有用
[/color]

package com.sohu.smc.test;

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(100);
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 (TestWait.a) {//

synchronized (this) {
try {
wait(10000);//仅仅是释放this锁,即对本对象的枷锁
System.out.println("....aaa");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}

}
class B implements Runnable{


public  B(){
System.out.println("init b");
}

@Override
public void run() {
System.out.println("b....");
synchronized (TestWait.a) {// 假如是 TestWait.r , 则需要等待wait(10000); 结束
System.out.println("..............b");
}

}

}
分享到:
评论

相关推荐

    高级java笔试题-interview:采访记录

    3.java线程中sleep和wait方法区别 4.谈谈常用容器类的原理和应用场景 面试 1.一个文件中有100万个整数,由空格分开,在程序中判断用户输入的整数是否在此文件中。说出最优的方法 金山一面(Android开发) 1....

    操作系统课程设计——模拟生产者与消费者(java)

    还能提高调查研究、查阅技术文献、资料以及编写软件设计文档的能力。 二、 课程设计内容 模拟仿真“生产者-消费者”问题的解决过程及方法。 三、 系统分析与设计 1、 系统分析 在OS中引入进程后,虽然提高了资源...

    javo::rocket: 任何 Java 开发人员都能负担得起的沙盒虚拟机

    我只参考“Java 虚拟机规范”,然后研究我们应该如何设计。 一些生产级别的特性被故意忽略,它应该尽可能简化以展示总体思路。 出于教育目的,这已绰绰有余。 如果您没有时间阅读 OpenJDK 源代码,或者在需要调整...

    Girinoscope:用于Girino(快速Arduino示波器)的简单Java图形用户界面

    如果您已经构建了自己的Girino并研究了固件,则应该已经熟悉它们。 等待时间参数 中提供的Arduino代码不能很好地处理您可以使用垂直绿色规则(水平橙色规则是触发采集的阈值)设置的wait duration参数。 通过串行...

    多线程下载技术论文.rar

    Breaking point adds biography wait for a function to suspend time be loaded with in including , downloading process, carries on not be completed time be loaded with last time mission. Keywords: ...

    Flakiness:跨编程语言的测试易用性研究

    该存储库包含“针对跨编程语言的测试脆弱性研究”论文的脆弱测试数据集。 匿名数据集 匿名数据集包含 ,它们是通过存储的脚本从GitHub中提取的。 该数据集被分类为原因,并且Flaky测试解决方案存储。 这些问题涉及...

    浅析mysql交互式连接&非交互式连接

    交互式操作:通俗的说,就是你在你的本机上打开mysql的客户端,就是那个黑...但是,从昨天开始,由于在新网租用了一个空间,而他的mysql的wait_time设置了10s,所以引出来一系列的问题,就顺便来研究下。 或者这个标题

    死锁算法的实验执行-研究论文

    当一组进程请求当前正被保留/分配给某些其他进程的相同资源时,就会发生死锁情况。 处于死锁状态的进程将等待大量时间,并且它们将永远不会终止其执行,并且该组... Java编程语言用于开发我们在本文中介绍的所有算法。

    javaSE代码实例

    16.4.9 防止错误的使用wait、notify、notifyAll方法 371 16.5 获取当前正在运行的线程 372 16.6 volatile关键字的含义与使用 372 16.7 小结 373 第17章 高级线程开发 374 17.1 线程池的使用 374 17.1.1...

    高级UNIX编程 pdf 电子书

    本书适合广大UNIX和c程序员、研究人员、高校相关专业师生学习和参考。 目录 出版者的话 专家指导委员会 译者序 前言 第1章 基本概念 1.1 UNIX和Linux一览 1.2 UNIX的版本 1.3 使用系统调用 1.4 错误处理 1.5 UNIX...

    实现类似Office助手的小精灵

    科学研究表明:从人机工程的角度考虑,赋予电脑或程序更多人性化色彩,如支持 语音合成输出信息、语音识别输入指令、智能提示、动画等,能够充分提高人机交互的有效性 和易用性。 ---- 我们知道,在Office 97帮助...

    操作系统(内存管理)

    文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半...

    华为编程开发规范与案例

    在新的编程思想中,指针基本上被禁止使用(JAVA中就是这样),至少也是被限制使用。而在我们交换机的程序中大量使用指针,并且有增无减。 2、防止指针/数组操作越界 【案例1.2.1】 在香港项目测试中,发现ISDN话机...

Global site tag (gtag.js) - Google Analytics