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

网站微信分享链接怎么做的怎么在虚拟主机上建网站

网站微信分享链接怎么做的,怎么在虚拟主机上建网站,wordpress move 下载,知识付费网站源码下载一、synchronized 关键字 1、synchronized 关键字回顾 synchronized 是 Java 中的关键字,是一种同步锁,它修饰的对象有以下几种 修饰一个类:其作用的范围是 synchronized 后面括号括起来的部分,作用的对象是这个类的所有对象 修…

一、synchronized 关键字

1、synchronized 关键字回顾
  • synchronized 是 Java 中的关键字,是一种同步锁,它修饰的对象有以下几种

    • 修饰一个类:其作用的范围是 synchronized 后面括号括起来的部分,作用的对象是这个类的所有对象

    • 修饰一个方法:被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象

    • 修改一个静态方法:其作用的范围是整个静态方法,作用的对象是这个类的所有对象

    • 修饰一个代码块:被修饰的代码块称为同步语句块,其作用的范围是大括号({})括起来的代码块,作用的对象是调用这个代码块的对象

  • 虽然可以使用 synchronized 关键字来修饰方法,但 synchronized 关键字并不属于方法定义的一部分,因此,synchronized 关键字不能被继承,如果在父类中的某个方法使用了 synchronized 关键字,而在子类中覆盖了这个方法,在子类中的这个方法默认情况下并不是同步的,而必须显式地在子类的这个方法中加上 synchronized 关键字才可以,当然,还可以在子类方法中调用父类中相应的方法,这样虽然子类中的方法不是同步的,但子类调用了父类的同步方法,因此,子类的方法也就相当于同步了

  • 如果一个代码块被 synchronized 关键字修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况

    • 获取锁的线程执行完了该代码块,然后线程释放锁

    • 线程执行发生异常,JVM 会让线程自动释放锁

  • 如果某个获取锁的线程由于要等待 IO 或者其他原因(比如调用 sleep 方法)被阻塞了,但是又没有释放锁,其他线程便只能等待

2、多线程编程步骤(上)
  1. 创建资源类,在资源类中创建属性和操作方法

  2. 创建多个线程,调用资源类中的操作方法

3、售票案例
(1)资源类
  • Ticket 类
package com.my.lock;public class Ticket {// 票数private int number = 40;// 售票方法public synchronized void sell() {if (number > 0) {number--;System.out.println(Thread.currentThread().getName() + " 卖出了一张票 剩下 " + number + " 张");}}
}
(2)多线程测试
  • SellTicket 类
package com.my.lock;public class SellTicket {public static void main(String[] args) {Ticket ticket = new Ticket();// 创建并运行三个售票线程Thread thread1 = new Thread(() -> {for (int i = 0; i < 40; i++) {ticket.sell();}}, "AA");Thread thread2 = new Thread(() -> {for (int i = 0; i < 40; i++) {ticket.sell();}}, "BB");Thread thread3 = new Thread(() -> {for (int i = 0; i < 40; i++) {ticket.sell();}}, "CC");thread1.start();thread2.start();thread3.start();}
}

二、Lock 接口

1、概述
  • Lock 提供了比使用同步方法和语句可以获得的更广泛的锁操作,它允许更灵活的结构,可以具有差别很大的属性,可以支持多个相关的 Condition 对象
public interface Lock {void lock();void lockInterruptibly() throws InterruptedException;boolean tryLock();boolean tryLock(long time, TimeUnit unit) throws InterruptedException;void unlock();Condition newCondition();
}
  • Lock 接口的实现类有

    • ReentrantLock:可重入锁

    • ReentrantReadWriteLock.ReadLock,ReentrantReadWriteLock.WriteLock:读写锁

2、可重入锁快速入门
  • 可重入锁,ReentrantLock 类,Lock 接口实现类
(1)资源类
  • LTicket 类
package com.my.lock;import java.util.concurrent.locks.ReentrantLock;public class LTicket {// 票数private int number = 40;// 创建可重入锁private final ReentrantLock lock = new ReentrantLock();// 售票方法public synchronized void sell() {// 上锁lock.lock();try {if (number > 0) {number--;System.out.println(Thread.currentThread().getName() + " 卖出了一张票 剩下 " + number + " 张");}} catch (Exception e) {e.printStackTrace();} finally {// 解锁lock.unlock();}}
}
(2)多线程测试
  • LSellTicket 类
package com.my.lock;public class LSellTicket {public static void main(String[] args) {LTicket lTicket = new LTicket();// 创建并运行三个售票线程Thread thread1 = new Thread(() -> {for (int i = 0; i < 40; i++) {lTicket.sell();}}, "AA");Thread thread2 = new Thread(() -> {for (int i = 0; i < 40; i++) {lTicket.sell();}}, "BB");Thread thread3 = new Thread(() -> {for (int i = 0; i < 40; i++) {lTicket.sell();}}, "CC");thread1.start();thread2.start();thread3.start();}
}
3、Lock 对比 synchronized
  • Lock 不是 Java 内置的,synchronized 是 Java 的关键字,因此是内置的,Lock 是一个接口,通过这个接口可以实现同步

  • 采用 synchronized 不需要去手动释放锁,当 synchronized 方法或者 synchronized 代码块执行完之后,系统会自动让线程释放对锁的占用,而 Lock 则必须要用户去手动释放锁,如果没有手动释放锁,就有可能导致出现死锁现象

  • Lock 可以让等待锁的线程响应中断,而 synchronized 却不行,使用synchronized 时,等待的线程会一直等待下去,不能够响应中断

  • 通过 Lock 可以知道有没有成功获取锁,而 synchronized 却无法办到

  • Lock可以提高多个线程进行读操作的效率

  • 在性能上来说,如果竞争资源不激烈,两者的性能是差不多的,而当竞争资源非常激烈时(即有大量线程同时竞争),此时 Lock 的性能要远远优于 synchronized

http://www.yayakq.cn/news/277001/

相关文章:

  • 比较好的网站建设哪家好这几年做哪个网站致富
  • 手机怎么做动漫微电影网站pc网站增加手机站
  • 响应式网站建设平台网站怎么做桌面快速链接
  • 黑色网站源码wordpress模板在哪个目录
  • 威海建设局网站楼盘信息公布discuz下载
  • 宜昌网站建设你做的网站可视区域多少
  • 网站为什么做站外推广seo排行榜年度10佳网站
  • 咨询公司管理制度优化网站搭建
  • 淘宝联盟做返利网站将网站发布到微信小程序怎么做
  • 做平面有什么好的网站购物网站开发背景及目的
  • 三亚做民宿的都用什么网站pc网站和移动网站
  • 网站后端用什么语言六里桥做网站公司
  • 盘锦建设信息网站wordpress做成论坛系统
  • 佛山网站优化服务中国招投标网证书查询平台
  • 网页背景做的比较好的网站中国游戏源码网
  • 网站建设主流技术及效果加气站类型的网站建设
  • 污水处理厂网站建设什么网站广告做多
  • 魔方网站建设网站制作网站布局结构
  • 外贸企业网站红色风格做喜报的网站
  • 建站公司用的 商城系统wordpress 轮播开发
  • 网站转发代码手机app是什么意思
  • 鹤壁网站seoMyeclipse怎么做网站
  • 无锡公司网站设计如何登录ftp网站
  • 深圳约的网站设计企业营销型网站建设图片
  • 行业门户网站运营方案做企业网站收费多少钱
  • 关于网站集约化建设的讲话智趣游戏型网站开发
  • 英文seo 文章发布类网站如何做教育公司网站
  • 景德镇网站开发凡客诚品下载
  • 微信网站的好处wordpress修改主题代码
  • 有声直播网站建设html5产品展示网站模板