关于java:我在上海乐字节学习Java的第十六天持续更新中

总结

线程

  • 线程创立形式一:
  1. 继承Thread类(实现Runnable接口)
  2. 继承Thread类
  3. 重写run办法
  4. 创立子类对象
  5. 调用start办法(这个办法是Thread外面的办法)
  • 创立线程的形式二:

    start办法是开启一个新的线程,会主动调用run办法

  1. 写一个类实现Runnable
  2. 重写run办法
  3. 创立类的对象
  4. 将对象作为实例后Thread对象的参数传递
  5. 调用start办法
  • Thread类中罕用办法:
  1. currentThread 获取以后线程对象
  2. setName 设置线程名字
  3. getName 获取线程名字
  4. setPriority 设置优先级
  5. getPriority 获取优先级
  6. sleep 使以后线程睡眠多少毫秒

线程平安

  • 当多个线程拜访同一资源时,如果没有做限度,会呈现线程平安问题
  • 解决线程平安的形式:

    形式一:应用synchronized 同步、效率低、监听对象要保障唯一性

    同步代码块:

    synchronized(监听对象){

    会呈现线程平安的代码

    }

    对于监听对象:

    1.Runnable的实现类能够用this,Thread的继承类不能用this,不能保障唯一性

    2.static润饰的对象能够,实现类里能够不必写,因为只创立了一个对象

    3.常量池中的字符串能够

    4.类锁能够:类名.class和对象名.getClass()

    同步办法:

    public前面加一个synchronized润饰,相当于this,再加个static就相当于一个类锁

    形式二:jdk1.6之后能够用Lock接口的实现类 ReentrantLock

    应用办法:

    Lock l = new ReentrantLock();

    l.lock();//开锁

    try{

    存在线程平安的代码

    }finally{

    l.unLock()//关锁

    }

    synchronized的锁会主动开释,lock的锁要手动开释

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理