Java多线程初学者指南(12):使用Synchronized块同步变量
002
003 public class SyncThread extends Thread
004 {
005 private static String sync = "";
006 private String methodType = "";
007
008 private static void method(String s)
009 {
010 synchronized (sync)
011 {
012 sync = s;
013 System.out.println(s);
014 while (true);
015 }
016 }
017 public void method1()
018 {
019 method("method1");
020 }
021 public static void staticMethod1()
022 {
023 method("staticMethod1");
024 }
025 public void run()
026 {
027 if (methodType.equals("static"))
028 staticMethod1();
029 else if (methodType.equals("nonstatic"))
030 method1();
031 }
032 public SyncThread(String methodType)
033 {
034 this.methodType = methodType;
035 }
036 public static void main(String[] args) throws Exception
037 {
038 SyncThread sample1 = new SyncThread("nonstatic");
039 SyncThread sample2 = new SyncThread("static");
040 sample1.start();
041 sample2.start();
042 }
043 }
staticMethod1
System.out.println(s.hashCode());
s = "world";
System.out.println(s.hashCode());
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
Java多线程初学者指南(12):使用Synchronized块同步变量相关推荐
- Java多线程初学者指南(10):使用Synchronized关键字同步类方法
要想解决"脏数据"的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下: public synchronized void run() { ...
- Java多线程初学者指南(5):join方法的使用
在上面的例子中多次使用到了Thread类的join方法.我想大家可能已经猜出来join方法的功能是什么了.对,join方法的功能就是使异步执行的线程变成同步执行.也就是说,当调用线程实例的start方 ...
- Java多线程学习(二)synchronized关键字(1)
转载请备注地址: https://blog.csdn.net/qq_34337272/article/details/79655194 Java多线程学习(二)将分为两篇文章介绍synchronize ...
- Java多线程中使用ReentrantLock、synchronized加锁 简单举例
Java多线程中使用ReentrantLock.synchronized加锁 简单举例 public class Demo {final static Lock lock = new Reentran ...
- 【Java进阶营】JAVA多线程基础学习二:synchronized
本篇主要介绍Java多线程中的同步,也就是如何在Java语言中写出线程安全的程序,如何在Java语言中解决非线程安全的相关问题,没错就是使用synchronized. 一.如何解决线程安全问题? 一般 ...
- JAVA多线程设计模式篇 12、Thread-Specific Storage模式——给我个柜子
文章目录 1. ThreadLocal的使用示例 2. ThreadLocal的使用场景 2.1 线程隔离的数据库连接与事务 2.2 线程隔离的session会话 总结 多线程环境中即然共用资源这么困 ...
- Java多线程编程实战:模拟大量数据同步
背景 最近对于 Java 多线程做了一段时间的学习,笔者一直认为,学习东西就是要应用到实际的业务需求中的.否则要么无法深入理解,要么硬生生地套用技术只是达到炫技的效果. 不过笔者仍旧认为自己对于多线程 ...
- Java多线程学习十二: synchronized的工作原理 以及背后的“monitor 锁”
我们研究下 synchronized 背后的 monitor 锁. 获取和释放 monitor 锁的时机 我们都知道,最简单的同步方式就是利用 synchronized 关键字来修饰代码块或者修饰一个 ...
- java多线程实战指南_学习笔记《Java多线程编程实战指南》二
2.1线程属性 属性 属性类型及用途 只读属性 注意事项 编号(id) long型,标识不同线程 是 不适合用作唯一标识 名称(name) String型,区分不同线程 否 设置名称有助于代码调试和问 ...
最新文章
- C++11 auto 关键字学习1
- K - 老鼠走迷宫(DFS)
- app端微信支付(二) - 生成预付单
- 如何revert一个merged branch上所有的改动
- html css周志,【嘉兴东臣php】HTML+CSS+JS周总结
- 面向对象有哪几种常用的设计模式,六大设计原则是什么
- JAVA的类名.this
- 从未停止!OpenGL的版本历史和发展
- Win32 SDK创建ListView控件
- C语言知识点总体梳理(知识点)
- SpringMVC工作原理详细讲解
- Text to image论文精读 NAAF:基于负感知注意力的图像-文本匹配框架 Negative-Aware Attention Framework for Image-Text Matching
- 双十一游戏发烧友都在推荐的电子竞技显示器
- golang mongodb 聚合(Aggregate) github.com/qiniu/qmgo框架
- Dialog 对话框
- Java基础代码片段
- 学习什么技术 4年后最赚钱
- 网站开办秒杀为赚流量“秒杀器”催生“代秒”服务——
- 山东泰开集团 工业机器人_对接世界“工业4.0”泰开机器人 大步向智能制造领域拓展延伸...
- ActionForm与bean的区别
热门文章
- JavaSE-21 字符编码简介
- HDU ACM 1078 FatMouse and Cheese 记忆化+DFS
- DataFormatString格式化字符串的总结
- Spring之旅—Spring模块介绍
- linux seq_file 接口
- WEBBASE篇: 第五篇, CSS知识3
- 第7章 Scrapy突破反爬虫的限制
- 网络防火墙实战-基于pfsense(1)
- BCB中的RTTI机制
- 有一个1,2,3....49 的数组,通过控制台显示为7行7列的,并且里面的数据时随机的代码...