202012.13,线程补充

线程未同步的时候
结果:没有头加入线程同步的时候,多个线程同时修改一个共享资源的时候,会造成多个线程同时操作一个资源(多个窗口同时售卖一张车票),看你就会出现资源的重复调用
|
线程使用步骤:

  1. 创建一个线程实现类
  2. 在线程实现类里面重写run方法,并在run方法中写代码
  3. 在测试类里面main方法中创建实现类对象
  4. 创建线程对象:Thread 线程对象名=new Thread(线程实现类对象,“线程重命名“);
  5. 调用:线程对象.start();启动线程的同时,调用里面的run方法
    |
    代码演示

    图片还要调用start方法没写出来



同步代码块实现线程同步:
同步代码块,通过同步锁,保证每次使用的时候只有一个得到锁的线程调用资源
|
对于非静态同步方法,同步锁,锁对象就是他线程实现类对象本身(this)
对于静态同步方法:锁对象就是接口实现类的字节码对象---》Runable.class
格式:synchronized(锁对象){会出现线程同步的代码}
同步代码块步骤(主要是run方法内部步骤的改变)
|
代码演示:




同步方法实现代码同步:
同步方法:有synchronized修饰的方法,由于java内部每个对象内部都有一个内置锁,
当用词关键字修饰方法的时候,内置锁会保护整个方法,再调用该方法的时候免费获取
内部锁,否则就会处于阻塞模式
*
步骤
就是在润方法外面写一个synchronized方法,方法内部写不希望被同步的操作,在润发内部调用这个方法就可以了

*
*
*
同步锁
步骤
1.Lock lock=new RunableLock();
2.使用lock.lock()加锁,需要捕获处理
3.一系列操作
4.在捕获处理后面加finally,完成开锁功能

*
*
*
线程池
如果一个现诚邀调十次,一次一次new太憨批,所以就有了线程池
|
代码

简单地来说就是,当我们放入线程池的时候就已经直接运行了。

原文地址:https://www.cnblogs.com/tushao/p/14133410.html