线程
weixin_45130434
这个作者很懒,什么都没留下…
展开
-
进程与线程的区别
进程:系统分配资源的基本单位。例如任务管理器的进程界面,一个软件一个进程。通常来讲进程是相互独立·,互不关联的。不能进行数据共享。它有独立的内存空间。其他进程是不会看到另一个进程的数据或者说是线程。优点进程是安全的,不会被其他进程所影响,更改。线程:任务调度和执行的基本单位。一个线程占用的资源很少。且线程是共享数据的,所以线程是不安全·的。线程的优势在于可以多个线程一起并发,并且资源占用少。...原创 2019-08-02 18:52:20 · 52 阅读 · 0 评论 -
Thread与Runnable的区别
Thread类实现了接口Runnable中的方法,所以可以继承Thread重写run()方法。run()方法则是Runnable中的方法。用继承Thread来实现线程是有弊端的,首先java中只可以继承一个父类,这就有了局限性。但是接口却可以实现多个,并且继承相对于接口来说是会造成耦合度高的。但是继承Thread来实现线程还是有好处的。对于多线程来说,继承Thread来写多个线程,线程之间是不...原创 2019-08-03 15:10:22 · 108 阅读 · 0 评论 -
多线程的生命周期
多线程一共有五个状态分别是:new(新建)new一个对象新建一个线程,分配内存start(准备)用start()方法将线程放入线程池,等待获取cpu的使用权running(运行)已经获取cpu的使用权,开始运行run()方法blocking(阻塞)阻塞常见的有sleep(),wait(),join()方法来自己调用阻塞还有一种是因为线程锁因为调用的关系,导致形成死锁,例如一个线...原创 2019-08-06 14:57:04 · 68 阅读 · 0 评论 -
sleep和wait的区别
sleep和wait的区别1.sleep是Thread类中的静态方法,wait是Object中的方法2.sleep可以在一个程序的任何代码中使用,不仅仅只限于线程的run()方法,wait却只能在方法中的同步代码块中使用或者同步方法。3.sleep需要抛出异常,wait不用4.sleep不会释放锁,wait会释放锁。sleep进入休眠(堵塞)它会占据锁对象,其他线程必须等待当前线程运行完才...原创 2019-08-12 14:29:51 · 435 阅读 · 0 评论 -
volatile与synchronized的区别
volatile:不会造成线程堵塞不能保证原子性,能保证原子性和可见性只能用于变量volatile标记的变量不会被编译器优化volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主存中读取synchronized:能保证原子性会造成线程堵塞可以使用在变量和方法synchronized标记的变量可以被编译器优化.synchronized则是锁定当前变量,只有...原创 2019-08-16 18:42:26 · 45 阅读 · 0 评论