栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java多线程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java多线程

                           

      

 线程和进程的原理类似,线程是相对于cpu而言的,线程则是相对于Java虚拟机而言的,

一个cup某一时刻只能执行一个进程,如果有多个应用同时在运行中,cup就会轮流分配时间片执行应用的指令,只是转换的速度非常快,让应用看似是在同时运行,线程则是进程的细化,由程序进行控制,Java中的线程则是由Java虚拟机进行调度,线程的生命周期分为两段,运行,终止,线程当然也是对象,想要创建线程类对象,那么这个用来创建对象的类必须是线程类,怎么才能让它是线程类呢,有三种方法:1,继承Thread类2,实现Runnable接口3,实现Callable泛型接口,启动线程使用start(),你可以在start()方法之前用setPriority()设置优先级,参数是1-10的整数,不设置默认是5的优先级,优先级越高的线程,被cup调度的概率就越大,start()方法之后线程就在运行中了,它会自动执行重写线程类的run方法,run方法里面是写你想在这个线程里实现的逻辑,在线程运行时你可以用一些方法来控制线程的运行:1,join(),调用了这个方法到的线程会先被执行,等到这个线程执行完毕才会去执行其它线程,注意要在start方法之后调用.2,setDeamon()设置伴随线程,即父线程终止子线程也终止,子线程要在父线程里实例化,通过调用子线程对象的setDeamon(参数为布尔值)方法,传一个true,就设置了伴随线程;3,sleep()通过sleep()方法能人为的阻塞线程让线程休眠,参数为时间单位为毫秒;

同步代码块:

同步方法:

【1】Lock锁引入:

JDK1.5后新增新一代的线程同步方式:Lock锁

与采用synchronized相比,lock可提供多种锁方案,更灵活

synchronized是Java中的关键字,这个关键字的识别是靠JVM来识别完成的呀。是虚拟机级别的。

但是Lock锁是API级别的,提供了相应的接口和对应的实现类,这个方式更灵活,表现出来的性能优于之前的方式。

Lock锁;

线程同步的优缺点:

【1】对比:

线程安全,效率低

线程不安全,效率高

【2】可能造成死锁:

死锁 >不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁

>出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞状态,无法继续

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/872400.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号