线程Blocked--SynchronizedDemo
import java.util.Random;/*** TODO 在此写上类的相关说明.<br>* @author gongqiang <br>* @version 1.0.0 2021年6月3日<br>* @see * @since JDK 1.5.0*/
public class SynchronizedDemo {/*** 中间值.*/private Integer value;/*** @param args*/public static void main(String[] args) {final SynchronizedDemo syn = new SynchronizedDemo();new Thread(() -> {while (true) {try {synchronized (SynchronizedDemo.class) {final Integer value = new Random().nextInt();syn.value = value;System.out.println("设置共享" + value);Thread.sleep(3000);}// 休眠,让获取线程能够读取共享变量.try {Thread.sleep(100);} catch (InterruptedException e) {Thread.currentThread().interrupt();}} catch (InterruptedException e) {Thread.currentThread().interrupt();}}}).start();new Thread(() -> {while (true) {synchronized (SynchronizedDemo.class) {final Integer value = syn.value;System.out.println("获取共享" + value);}// 休眠,让设置线程能够设置共享变量.try {Thread.sleep(500);} catch (InterruptedException e) {Thread.currentThread().interrupt();}}}).start();try {Thread.sleep(60 * 60 * 1000);} catch (InterruptedException e) {// 无需处理.}}
}
线程Blocked--SynchronizedDemo相关推荐
- android 组件 线程,Android UI线程和非UI线程
UI线程及Android的单线程模型原则 当应用启动,系统会创建一个主线程(main thread). 这个主线程负责向UI组件分发事件(包括绘制事件),也是在这个主线程里,你的应用和Android的 ...
- Android UI线程和非UI线程
UI线程及Android的单线程模型原则 当应用启动,系统会创建一个主线程(main thread). 这个主线程负责向UI组件分发事件(包括绘制事件),也是在这个主线程里,你的应用和Android的 ...
- Java知识整理——线程
进程与线程的区别 ? 进程是一个程序的执行(即正在运行的程序), 然而线程是在进程中独立的执行序列. 一个进程可以包含很多线程. 线程有时被称为轻量级的进程. 说下创建线程的不同方式. 你倾向于哪种方 ...
- C#多线程之旅(七)——终止线程
阅读目录 一.什么时候用Thread.Abort(); 二.Thread.Abort的用法 三.无法终止线程的情形 四.Catch块中抛出异常 五.Finally块中抛出异常 六.Abort调用的时间 ...
- 操作系统(3)-线程的六大状态、基于代码实战的线程创建及六个常用方法
一.进程和线程的简介 进程的概念 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 进程中所包含的一个或多个执行单元成为线程.进程还拥有一个私 ...
- 线程开的越多就越好吗|趣谈线程池
前言 线程优化一直是启动优化中的一个必不可少的项目.作为一个 Android 程序员,你肯定希望应用启动的时候,火力全开,线程池拉满,每一个 CPU 核心满载而行. 可你把线程池拉满的时候,启动时长就 ...
- 使用apache log解决高并发下log4j引起大量线程block问题
由于项目用户量比较大,测试同事采用两百并发进行测试,在测试查过程中,查看jvm 虚拟机发现很多日志线程出现BLOCKED, 结果如下: "http-saoma%2F192.168.6.162 ...
- 多线程——线程实现、线程状态、线程同步、线程通信、线程池
多线程 一.线程 1.普通方法调用和多线程 2.程序.进行.线程 二.线程创建 1.继承Thread类 2.实现Runable接口 3.实现Callable接口 4.静态代理模式 5.Lamda表达式 ...
- 线程池常见面试题总结
1. 为什么要用线程池? 不能直接new个线程吗? 如果我们在方法中直接new一个线程来处理,当这个方法被调用频繁时就会创建很多线程,不仅会消耗系统资源,还会降低系统的稳定性. 降低资源消耗.通过重复 ...
- java大量的print影响性能吗_printStackTrace()造成的性能瓶颈
一 背景 在一次活动前的压测中,发现一个服务(平响为250ms左右)存在性能瓶颈,单实例的QPS压力从20升高到40后服务就雪崩了(平响急剧升高). 通过命令查看线程信息,发现很多线程BLOCKED在 ...
最新文章
- Pycharm 和 vscode 多光标、折叠代码和代码格式化快捷键
- 多返回值函数的编写方法
- Scala入门示例反编译分析代码执行流程
- 再见Xshell!这个开源的终端工具更酷炫!
- oschina导出博客获取图片
- java activiti jbpm_activiti和jbpm工作流引擎哪个比较好?
- 【Java中级篇】使用itextpdf生成PDF
- 【英语学习】【WOTD】borne 释义/词源/示例
- Spark取出(Key,Value)型数据中Value值为前n条数据
- MySQL5.5安装和navicat安装配置图解
- Openwrt修改flash大小
- kubernetes 网络callico和flannel两种网络
- java 实现pdf 转图片_java实现pdf转图片pdf
- MXF视频文件损坏的修复方法
- 为伊消得人憔悴,衣带渐宽终不悔(2)
- .*? 和 .*的区别
- 微软正式发布 Windows 11 SE
- soul 总是显示登录聊天服务器,用soul聊天莫名其妙被封了号,并没有发广告就被封...
- OSChina 周二乱弹 ——人和人之间的关系用通话时间来表述
- 什么是CSS特异性及其工作方式?