您的位置:首页 > 编程语言 > Java开发

java多线程三种方式区别,java多线程,线程同步方式,线程同步加锁的方法,wait与sleep区别

2015-11-21 19:21 609 查看
java多线程三种方式区别

1)实现Runnable接口

        定义线程类,实现Runnable接口,重写其public void run(),将此类的对象当做Thread类的构造函数中的参数

       所有子线程公用一套run中代码

2)继承Thread类

        所有子线程各有一套自己的run代码

3)使用ExecutorService,Callable,Future实现有返回结果的多线程

java多线程

1)进程是资源分配的最小单位,线程是处理机调度执行的最小单位;不同的进程有各自的逻辑地址,能共享物理地址,而同一进程的线程之间可以

        共享部分逻辑地址,即:能共享堆内存,每个线程有自己的线程栈,寄存器,私有数据。

2)多线程的实现方式有:继承Runnable接口、继承Thread类、使用ExecutorService、Callable、Future实现有返回结果的多线程。

3)多线程时要处理线程同步问题,使用加锁的方式同时又要避免死锁的产生。

线程同步方式

互斥锁、读写锁、条件变量、信号量和令牌

线程同步加锁的方法

1)synchronized:修饰方法或修饰代码块

2)lock对象锁:lock()方法会对Lock实例对象进行加锁,因此所有对该对象调用lock()方法的线程都会被阻塞,直到该Lock对象的unlock()方法被调用。

wait与sleep区别

1)wait是Object类的方法,sleep是Thread类的方法

2)wait时必须有锁且放开,sleep时不一定有锁,有的话不放开

3)wait要靠别人叫醒或打断,sleep自己醒或被打断
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: