当前位置: 首页 > news >正文

做远程培训网站用什么系统樱桃企业网站管理系统v1.1-cms

做远程培训网站用什么系统,樱桃企业网站管理系统v1.1-cms,谁专门做网站安全维护,网络系统管理属于什么类在Java中,synchronized关键字、ReentrantLock和volatile关键字这三个是编程中常用于实现线程同步的机制,下面结合代码详细说明一下这三个关键字的用法。 1. synchronized关键字: synchronized关键字是Java语言提供的内置锁机制,…

在Java中,synchronized关键字、ReentrantLock和volatile关键字这三个是编程中常用于实现线程同步的机制,下面结合代码详细说明一下这三个关键字的用法。

1. synchronized关键字:

synchronized关键字是Java语言提供的内置锁机制,用于实现线程之间的同步。它可以修饰方法或代码块,确保同一时刻只有一个线程可以访问被synchronized修饰的代码块或方法。示例

下面使用共同操作一个共享变量count演示一下synchronized的用法,代码如下:

public class SynchronizedExample {private int count = 0;public synchronized void increment() {count++;}public synchronized void decrement() {count--;}public static void main(String[] args) {SynchronizedExample example = new SynchronizedExample();Thread thread1 = new Thread(() -> {for (int i = 0; i < 1000; i++) {example.increment();}});Thread thread2 = new Thread(() -> {for (int i = 0; i < 1000; i++) {example.decrement();}});thread1.start();thread2.start();try {thread1.join();thread2.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("Count: " + example.count);  //Count: 0}
}

2. ReentrantLock:

ReentrantLock是java.util.concurrent包提供的锁机制,相比synchronized关键字更加灵活,可以实现公平锁、可中断锁等特性。使用ReentrantLock需要手动加锁和解锁

代码如下:

import java.util.concurrent.locks.ReentrantLock;public class ReentrantLockExample {private int count = 0;private ReentrantLock lock = new ReentrantLock();public void decrement() {lock.lock();try {count++;} finally {lock.unlock();}}public void increment() {lock.lock();try {count++;} finally {lock.unlock();}}public static void main(String[] args) {ReentrantLockExample example = new ReentrantLockExample();Thread thread1 = new Thread(() -> {for (int i = 0; i < 1000; i++) {example.increment();}});Thread thread2 = new Thread(() -> {for (int i = 0; i < 1000; i++) {example.decrement();}});thread1.start();thread2.start();try {thread1.join();thread2.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("Count: " + example.count); //Count: 0}
}

3. volatile关键字:

volatile关键字用于保证变量的可见性,即当一个线程修改了volatile变量的值,其他线程可以立即看到最新的值。但它并不具备原子性,不能保证复合操作的原子性。
代码如下:

public class VolatileExample {private volatile boolean flag = false;public void toggleFlag() {flag = !flag;}public static void main(String[] args) {VolatileExample example = new VolatileExample();Thread thread1 = new Thread(() -> {for (int i = 0; i < 1000; i++) {example.toggleFlag();}});Thread thread2 = new Thread(() -> {for (int i = 0; i < 1000; i++) {example.toggleFlag();}});thread1.start();thread2.start();try {thread1.join();thread2.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("Flag: " + example.flag);}
}
http://www.yayakq.cn/news/588768/

相关文章:

  • 如何制作一个网站包含多个网页阿里云备案 网站备案域名
  • 视频网站开发的论文网站建设需求分析酒类
  • 微站和pc网站私人订制网站推荐
  • wordpress头像尺寸合肥百度推广优化
  • 网站后台怎么更新网站设计策划书方案
  • 阿里巴巴做国际网站多少钱模板做图 网站
  • 企业进行网站建设的方式网络推广是什么工作
  • 沈阳微信网站上海装潢设计
  • 制作网站用什么软件有哪些企业管理培训课程免费视频
  • 无障碍网站建设推广前景郑州网站建设网站
  • 怎么把网站源码上传到空间根目录视频博客网站做外贸可以吗
  • 如何建设一个网站站哪个网站可以免费设计房子
  • 威海市建设工程协会网站跨境电商好做吗
  • 域名空间有了怎么做网站东莞网络推广系统
  • 宁波h5建站大业推广网站
  • 建网站能多少带宽wordpress怎么删回复
  • 北京网站域名快速备案wordpress主题添加右边栏
  • 如何查看网站用什么代码做的怎么认证网站
  • 社区网站模板pw域名网站
  • 广州 电商网站建设金湖做网站
  • 校园网站建设管理制度网站建设培训多少钱
  • 手机上自己做网站吗个人网站开发模式
  • 电子商务网站的设计与实现做电商网站有什语言好
  • 网站怎么企业备案信息asp网站开发源码
  • 做中介开什么网站wordpress 4.9.1 教程
  • 做视频用的网站有哪些更改wordpress最大文件
  • 设计师网站十大网站排名网站后台密码文件
  • 佛山市南海区建设局网站网站建设优化制作公司
  • 那个餐饮网站手机app软件开发需要多少钱
  • 中牟建设工程信息网站wordpress 3.8 漏洞