关闭

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

标签: java多线程三种方式区别java多线程线程同步方式线程同步加锁的方法wait与sleep区别
736人阅读 评论(0) 收藏 举报
分类:

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自己醒或被打断





1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:94481次
    • 积分:2020
    • 等级:
    • 排名:第19100名
    • 原创:100篇
    • 转载:45篇
    • 译文:2篇
    • 评论:6条
    最新评论