Java 多线程系列理论+源码
以实战为主,做一个关于Java多线程的系列笔记,提高和补充自己,还可以帮助到别人
思诚代码块
这个作者很懒,什么都没留下…
展开
-
Java多线程的之线程同步机制
大家好,今天分享Java多线程的之线程同步机制线程同步,多用于多个线程操作一个资源的情况并发: 同一个对象被多个线程同时操作实例:成千上万的人同时去抢10张票,就一点:就是: 同一资源,多人都想用处理多线程的问题时,多个线程访问一个对象,并且某些线程还想去修改这个对象,这是就要使用上线程的同步,线程同步就是一种等待机制,多个需要同时访问此对象的线程池进入这个对象的等待池形成队列,等待前面的线程使用完成,下一个线程再使用由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来原创 2022-02-26 12:23:42 · 702 阅读 · 0 评论 -
Java多线程之守护线程
大家好,今天分享Java多线程之守护线程1.线程分为用户线程和 守护线程2.虚拟机必须确保用户线程执行完毕3.虚拟机不用等待守护线程执行完毕比如说,后台记录日志 ,内存监控,垃圾回收写源码:package Demo05;//测试守护线程//这个实例,就是上帝守护你public class TestDaemon { public static void main(String[] args) { God god =new God(); You yo原创 2022-02-25 14:19:42 · 926 阅读 · 0 评论 -
Java多线程的优先级
大家好,我们来分享Java多线程的优先级Java提供了一个线程调度器来监控程序当中的启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行线程的优先级用数字表示,范围从1~10Thread.MIN_PRIORITY=1Thread.MAX_PRIORITY=10Thread.NORM_PRIORITY=5使用以下方式改变或获取优先级getPriority().setPriority(int xxx)写源码:package Demo05;public class T原创 2022-02-25 13:35:04 · 504 阅读 · 0 评论 -
Java多线程的状态检测
大家好,今天分享Java多线程的状态检测首先要知道线程的状态:线程状态。 线程可以处于以下状态之一:NEW尚未启动的线程处于此状态。RUNNABLE在Java虚拟机中执行的线程处于此状态。BLOCKED被阻塞等待监视器锁定的线程处于此状态。WAITING正在等待另一个线程执行特定动作的线程处于此状态。TIMED_WAITING正在等待另一个线程执行动作达到指定等待时间的线程处于此状态。TERMINATED已退出的线程处于此状态。一个线程可以在给定时间点处于一个状态。 这些状态是原创 2022-02-24 21:49:21 · 684 阅读 · 0 评论 -
Java多线程之join 强制执行
大家好,今天分享Java多线程之join 强制执行Join方法的作用,其实就是表示一旦某个线程调用了join方法,那么就要一直运行到该线程运行结束,才会运行其他进程.而且带有强制性举个实例:package Demo04;public class TestJoin implements Runnable { @Override public void run() { for (int i = 0; i < 100; i++) {原创 2022-02-24 15:12:37 · 377 阅读 · 0 评论 -
Java的多线程礼让
大家好,分享一下线程礼让线程礼让,就是让当前的正在执行的线程暂时停止,但不会阻塞将线程从运行状态转为就绪状态让cpu 重新调度,礼让是不一定成功的,要看cpu的状态写源码:package Demo04;public class TestYield { //测试线程礼让 //礼让不一定成功,看cpu的状态 public static void main(String[] args) { //这是主线程 MyYield myYield =n原创 2022-02-23 17:08:15 · 356 阅读 · 0 评论 -
Java多线程的sleep(休眠)
大家好,今天分享Java多线程的sleep(休眠)了解这样的几个概念:1.sleep指向当前线程阻塞的毫秒数(就是可以让线程停一会)2.sleep 存在异常 InterruptedException3.sleep 时间达到后线程进入就绪状态4.sleep 可以模拟网络延时,倒计时等5.sleep 每一个对象都有一个锁,sleep 不会释放锁写源码:package Demo04;public class TestSleep implements Runnable{ //使用Run原创 2022-02-23 14:07:53 · 16998 阅读 · 2 评论 -
java线程的停止(源码实例)
大家好,今天我们来分享一下Java线程的停止首先的一个,就是线程状态 (五个)或者:看第二个也一样,大差不差(第二个比较详细)线程的常用方法:看源码:原创 2022-02-22 16:38:13 · 802 阅读 · 0 评论 -
Java多线程的静态代理
大家好,今天分享Java多线程的静态代理代理,说白了,就是找别人来帮你做事这里,给大家举一个婚庆公司的例子如果你要结婚了,那么这个过程当中一定有很多事情上的安排,这些事情上的安排,你可以委托一个婚庆公司来处理这些事在这个案例当中:你 :是真实角色婚庆公司: 代理你本人,帮助你处理结婚的事情结婚: 实现结婚接口就可以了...原创 2022-02-22 14:28:35 · 188 阅读 · 1 评论 -
Java多线程之龟兔赛跑的案例
大家好,今天分享一下Java多线程之龟兔赛跑的案例源码:package Demo01;//这是一个龟兔赛跑的实际案例public class Race implements Runnable { private static String winner; //胜利者 @Override public void run() { //重写run()方法 for (int i = 0; i <=100; i++) { /原创 2022-02-20 16:40:27 · 2961 阅读 · 0 评论 -
多个线程同时操作一个对象的实际案例(Java多线程)
大家好,今天我们分享一下一个对象被多个线程使用的实际案例首先,我们要知道,使用Thrad 继承方式创建的多线程有单继承的局限性即:在Java中一个类只能使用extends继承一个父类.代码案例:package Demo01;//我们在这里写一个抢票的例子//我们敲得就是一个 多个线程同时操作一个对象的实例public class TestThread04 implements Runnable { private int tickNums = 10; //有10张票原创 2022-02-20 15:02:31 · 3244 阅读 · 0 评论 -
使用Runnable接口创建线程,很简单
大家好,今天分享.使用Runnable接口创建线程首先Java创建线程可以通过三种方法:即:1.继承Thread类创建线程类(重点)2.通过Runnable接口创建线程类(重点)3.通过Callable接口(了解即可)今天,使用Runnable接口创建线程。步骤:1.定义MyRunnable类实现.Runnable接口2.创建run()方法,编写线程执行体3.创建线程对象,调用start()方法启动线程package Demo01;public class Thread03原创 2022-02-19 14:03:57 · 7404 阅读 · 0 评论 -
使用thread 实现多线程同步下载图片
大家好,分享一下使用thread 实现多线程同步下载图片首先,你要有这个包:这个的话,直接在csdn上搜索即可你会看见很多人上传的文件分享链接这样就可以看见文件里边的东西了获取网页上的图片链接:然后我们来敲一下源码:package Demo02;import org.apache.commons.io.FileUtils;import javax.imageio.IIOException;import java.io.File;import java.io.IOExce原创 2022-02-18 20:13:02 · 736 阅读 · 0 评论 -
Java继承Thread类 创建线程
大家好,今天分享Java继承Thread类 创建线程首先Java创建线程可以通过三种方法1.继承Thread类创建线程类(重点)2.通过Runnable接口创建线程类(重点)通过Callable接口(了解即可)这次我们使用第一种方法来创建Java线程:即:Java继承Thread类 创建线程操作的步骤:自定义线程类继承Thread类重写run()方法,编写线程执行体创建对象,调用start()方法自动线程写源码:package Demo01;//创建线程方法之一 :原创 2022-02-18 17:28:32 · 2991 阅读 · 1 评论 -
线程,进程,多线程
大家好,今天分享一下线程,进程,多线程先了解一下程序的概念:程序是指令和数据的有序结合它本身没有运行的意义,是一个静态的概念。进程:执行程序的一次执行过程,它是一个动态的概念,是系统分配资源的单位也可以换一句话来解释,进程就是正在运行的程序(比如:qq音乐,或者一个软件)举个进程的实际案例:打开Windows 命令行窗口:ping -t www.baidu.com //一直ping 百度域名其实,在这个 ping包的过程,就是一个进程通常在可以有若干个线程,一个进程原创 2022-02-18 15:19:30 · 242 阅读 · 0 评论 -
Java多线程的概述
大家好,今天我们来分享一下Java多线程首先,我们要知道什么是Java多线程Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程是多任务的一种特别的形式就是同时对多个任务加以控制,它的原理就是把一个处理器划分为若干个短的时间片,每个时间片依次轮流地执行处理各个应用程序,由于一个时间片很短,相对于一个应用程序来说,就好像是处理器在为自己单独服务一样,从而达到多个应用程序在同时进行的效果就是把操作系统中的原创 2022-02-18 11:24:34 · 319 阅读 · 0 评论