zoukankan      html  css  js  c++  java
  • 黑马程序员——对线程的一些总结

    1.为什么要覆盖run()方法?

       Thread类用于描述线程。该类就定义了一个功能,即存储线程要运行的代码,该存储的功能就是由run()方法来实现的。

    2.线程的运行状态:

       线程被创建,调用start()方法进入运行状态;如果调用sleep(time)或者wait()方法线程进入冻结状态,但依然存在,此时可以试用notify()方法唤醒线程;

       当线程运行结束或者调用stop()方法,线程便消亡了。

    3.关于多线程的安全问题

       解决方式:对多条操作共享数据的语句,只能让一个线程执行完毕之后,在执行过程中其他线程不可参与。

            即同比代码块:synchronized(对象){需要同步的代码}

         上面的对象其实就是锁,持有锁的线程才可以执行同步代码块中的代码,没有持有锁的的线程即使获取了cpu执行权也进不去,因为没有获得锁对象

          同步的前提:有两个或者两个以上的线程

                          必须多个线程使用同一个锁对象

     4.如何看哪些代码需要同步?

    • 明确哪些代码是多线程运行代码
    • 明确哪些是共享数据
    • 明确多线程运行代码中哪些语句操作共享数据
  • 相关阅读:
    apache虚拟主机三种不同配置方式
    搭建http服务器及配置
    学校ftp服务器搭建
    vsftpd搭建使用
    nginx使用
    pxe+kickafkstart (二)转
    pxe批量网络装机
    bash中()使用特性
    ansible使用
    javascript 之 Object.defineProperty
  • 原文地址:https://www.cnblogs.com/wdsthink/p/4372896.html
Copyright © 2011-2022 走看看