浅学Java多线程 Thread synchronized
2021/11/12 22:39:35
本文主要是介绍浅学Java多线程 Thread synchronized,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
例题:
编写4个线程,第一个线程从1加到25,第二个线程从26加到50,第三个线程从51加到75,第四个线程从76加到100,最后再把四个线程计算的结果相加。
/** * Created by Intellij IDEA. * User: specialfinger * Date: 2021/11/12 */ public class AddThread extends Thread{ private int begin; private int end; private int t; static int sum=0; public AddThread(int x,int y){ this.begin=x; this.end=y; } @Override public void run() { for (int i=this.begin;i<=this.end;i++){ t+=i; } //class对象锁 synchronized (AddThread.class){ //System.out.println(Thread.currentThread().getName()+"----"+t); sum+=t; } } } public class Main { public static void main(String[] args) throws InterruptedException{ for (int i=0;i<4;i++){ AddThread a=new AddThread(i*25+1,(i+1)*25); a.start(); } Thread.sleep(500);//计算需要一定时间? System.out.println(AddThread.sum); } }
此题第一眼就想到new四个Thread,然后用Runnable join实现同步,我这里参考了这篇文章,对于理解synchronized有很大帮助
深入理解Java并发之synchronized实现原理_zejian的博客-CSDN博客_synchronized底层原理
这篇关于浅学Java多线程 Thread synchronized的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南