java线程实例题_java线程相关试题实例源码代码
java线程相关试题实例源码代码。
/**
* 计算输出其他线程锁计算的数据
*/
class ThreadA {
public static void main(String[] args) {
ThreadB b = new ThreadB();
//启动计算线程
b.start();
//线程A拥有b对象上的锁。线程为了调用wait()或notify()方法,该线程必须是那个对象锁的拥有者
synchronized (b) {
try {
System.out.println(“等待对象b完成计算。。。”);
//当前线程A等待
b.wait(); //这里并不是让b去wait,是b的所有者线程wait,但是这个线程的苏醒的条件是b的notify或notifyAll方法的调用而且
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(“b对象计算的总和是:” + b.total);
}
}
}
/**
* 计算1+2+3 … +100的和
*
* @author leizhimin 2008-9-15 13:20:49
*/
class ThreadB extends Thread {
int total;
public void run() {
System.out.println(“xxxxxxxxxxxxxxxxxrrrrrrrrrrrrrrrrrrrrrx”);
synchronized (this) {
System.out.println(“xxxxxxxxxxxxxxxxxx”);
for (int i = 0; i < 101; i++) {
total += i;
}
//(完成计算了)唤醒在此对象监视器上等待的单个线程,在本例中线程A被唤醒
notify();
}
}
}
notify():
(唤醒)
(在此对象监视器上)
(等待的)
(单个)
(线程)。
A a = new A();
a.notify();
a是对象监视器
notify()是类A的成员方法
因此wait、notify、notifyAll都属于同一个对象监视器
解决死等问题的途径:
通过某一条件来判断对象监视器是否以及执行了notifyAll()
1)如果已执行,则避免自己被监视器wait()
2)如果没执行,则可以放心大胆的去被wait(),因为迟早都会被notifyAll()
java线程实例题_java线程相关试题实例源码代码相关推荐
- 计算机毕业设计JAVA项目实训管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw
计算机毕业设计JAVA项目实训管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA项目实训管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw ...
- java获取当前周一_Java互联网架构-Spring IOC源码分析
欢迎关注头条号:java小马哥 周一至周日下午三点半!精品技术文章准时送上!!! 精品学习资料获取通道,参见文末 源码介绍之前,看几个问题: Bean的承载对象是什么? Bean的定义如何存储的? B ...
- java制作电子钢琴_java 设计 模拟钢琴 完整源码
//Piano.java import java.applet.*; import java.awt.*; import java.awt.event.*; public Piano extends ...
- java 实验室预约系统_java实验室预约管理系统(源码+数据库脚本)
随着高校教学资源逐步开发,高校教育资源的应用种类逐步增多.而实验室作为高校基本教育资源之一,与日常教学工作开展.课堂项目实践有着密切联系.由此,如何借助新时期技术,加强高校实验室应用数据信息程序开发, ...
- java 微服务源码_java 微服务 入门级实例源码(基于SpringCloud)
[实例简介] 实例中包含三个项目 eurekaServer(服务注册中心),provicer_demo(微服务提供者),caller_demo(微服务调用者),并对 服务器直接返回与调用微服务的性能 ...
- java实现PDF转图片功能,附实例源码!
本文整理了一个PDF转图片的工具类,支持单页及多页的转换! 首先需要引入相关的jar包 <dependency><!--PDF操作工具包--><groupId>or ...
- 【Java】SpringBoot使用caffeine构建缓存带实例源码
目录 一.什么是caffeine 二.SpringBoot整合caffeine 1. SpringBoot项目基础运行 2. 基于maven安装caffeine 3. 缓存注解说明 4. 实际代码 1 ...
- latch.await java有什么作用_java相关:CountDownLatch源码解析之await()
java相关:CountDownLatch源码解析之await() 发布于 2020-6-18| 复制链接 摘记: CountDownLatch 源码解析-- await(),具体内容如下上一篇文章说 ...
- Java Review - 线程池资源一直不被释放案例源码分析
文章目录 概述 问题复现 源码分析 小结 概述 在日常开发中为了便于线程的有效复用,经常会用到线程池,然而使用完线程池后如果不调用shutdown关闭线程池,则会导致线程池资源一直不被释放. 下面通过 ...
最新文章
- 生态伙伴 | 股书入驻飞书,提供一站式股权激励方案设计及管理服务
- 双人五子棋对战(需要EasyX图像库)
- 考研学弟问的n个问题,梳理一下分享给大家
- 牛客练习赛24题解(搜索,DP)
- Centos7 中文乱码切换中英字符
- SAP Spartacus OccEndpointsService调用getBaseEndpoint的一些场景
- 从Qt4 迁移到Qt5 winEvent代替为nativeEvent
- 网页设计工资一般多少_初级会计师就业前景怎么样?工资一般多少?
- 64位 iee754_IEEE754浮点表示法详解
- epoll, NIO,AIO
- 【Java】数据库编程
- 数据结构之单链表的整表创建头插法
- 查询字符串(性能对比): Array Vs HashMap
- 五笔字根表识别码图_86版五笔字根表及口诀(最新图文版)
- jQuery京东分类导航菜单
- 【python实战】制作微信动态名片
- Windows中的SysWow64文件夹
- MMD导入unity中使用
- HTML Purifier
- 控制台模拟鼠标、键盘操作
热门文章
- UITableView 显示在statusbar 下面
- 人的价值不在于能力,而在于位置 » 社区 | Ruby China
- 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(4月2日-4月8日)
- MVC命名空间中的~UrlHelper中的Action方法告诉我们方法重载的重要性(路由的统一)...
- php.ini 配置详解
- Struts国际化步骤
- JavaWeb学习总结(五十)——文件上传和下载
- Asp.net中利用ExecuteNonQuery()执行存储过程返回-1解决方案
- sql server 2008学习8 sql server存储和索引结构
- NHibernate错误集锦及配置技巧