你好我是辰兮,很高兴你能来阅读,本篇文章为大家讲解Java多线程之synchronized关键词,下面有案例的截图和相关代码可以自行实践,相关的更多面试知识已经提前整理好文章可以阅读学习,获取新知,希望对Java初学者有帮助。 多线程访问临界资源时的数据安全问题 产生原因:有多个线程在同时访问一个资源,如果一个线程在取值的过程中,时间片又被其他线程抢走了,临界资源问题就产生了 how to解决临界资源问题 解决方案:一个线程在访问临界资源的时候,如果给这个资源“上一把锁”,这个时候如果其他线程也要访问这个资源, 就得在“锁”外面等待 锁 对象锁:任意的对象都可以被当做锁来使用 同步代码块 说明: synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。
1.Java线程的实现方式:
Java线程的实现方式详解2.线程进程基础知识参考:
进程线程的面试问题小结3.线程面试常见问题参考:
Java常见多线程基础面试问题
一、序言
类锁:把一个类当做锁,语法为:类名.class
语法:
synchronized(锁) { //需要访问临界资源的代码段 }
二、同步代码块和对象锁的使用
同步代码块结合对象锁
参考代码如下,大家自行运行实践(ps:可以去除 synchronized关键字)
package demo1; public class SellTickets { static int count = 10; //任何对象都可以充当一个对象锁 static Object obj = new Object(); static Runnable r = new Runnable() { @Override public void run() { while(count > 0) { System.out.println(Thread.currentThread().getName()+"--"); synchronized(obj){ count--; if(count <= 0) { return; } System.out.println(Thread.currentThread().getName() + "售出了 一张票,剩余" + count); } } } }; public static void main(String[] args) { Thread t1 = new Thread(r); Thread t2 = new Thread(r); Thread t3 = new Thread(r); // t1.setPriority(8); t1.start(); t2.start(); t3.start(); } }
三、同步代码块和类锁的使用
使用类锁的案例如下,参考格式 即 类.class
四、 同步方法
首先给大家展示没有加锁的方法
然后再给大家展示加锁的方法
参考代码如下,大家自行运行实践(ps:可以去除 synchronized关键字)
package demo1; public class SellTickets { static int count = 100; //任何对象都可以充当一个对象锁 //static Object obj = new Object(); static Runnable r = new Runnable() { @Override public void run() { while(count > 0) { sellTickets(); } } //同步方法,作用和同步代码块一样 public synchronized void sellTickets() { if (count <= 0) { return; } count--; System.out.println("售票员" + Thread.currentThread().getName() + "售出一张票,余额 为" + count); } }; public static void main(String[] args) { Thread t1 = new Thread(r); Thread t2 = new Thread(r); Thread t3 = new Thread(r); // t1.setPriority(8); t1.start(); t2.start(); t3.start(); } }
The best investment is to invest in yourself
2020.05.31 记录辰兮的第72篇博客
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算