![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java多线程
太阳以西?
行动大于想像
展开
-
多线程学习(十四)-----守护线程和用户线程
注意:线程分为 守护线程和用户线程 ,当程序中没有用户线程时,JVM会退出.方法内容void setDaemon(boolean on)将该线程标记为守护线程或用户线程boolean isDeamon()测试该线程是否为守护线程。void yield()暂停当前正在执行的线程对象,并执行其他线程。(让出本次cpu执行的时间片)☆ voi...原创 2019-04-17 20:42:03 · 705 阅读 · 0 评论 -
多线程学习(十三)-----线程池
线程生命周期图线程池:线程池是预先创建线程的一种技术.创建线程池的四种方法(第二种运用较多): * 第一种:创建一个单线程的线程池 ExecutorService executorService = Executors.newSingleThreadExecutor(); * 第二种:创建一个固定大小的线程池,参数为线程的数量; Executor...原创 2019-04-19 11:35:43 · 132 阅读 · 0 评论 -
多线程学习(十二)-----线程死锁
线程死锁 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形.某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题.产生死锁的四个必要条件:互斥条件:一个资源每次只能被一个进程使用。请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺。循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。原创 2020-05-15 12:53:27 · 146 阅读 · 0 评论 -
多线程学习(十一)-----资源共享与线程同步(重点)
★多线程共享数据 在多线程操作中,多个线程可能会同时处理多个资源,这就是多线程的共享数据. 多线程共享数据时,会发生线程不安全的情况, 多线程共享数据必须使用同步.★线程同步 同步就是指多个线程在在同一个时间段内只能一个线程执行指定代码,其他线程 要在此线程完成之后才能继续执行.同步的三种实现方式 1.通过同步代码块来...原创 2019-04-17 21:04:13 · 319 阅读 · 0 评论 -
多线程学习(十)-----线程状态-守护线程
守护线程线程分为 守护线程和用户线程 ,当程序中没有用户线程时,JVM会退出.方法内容void setDaemon(boolean on)将该线程标记为守护线程或用户线程boolean isDeamon()测试该线程是否为守护线程。☆ void setDaemon(boolean on)作用:将该线程标记为守护线程或用户线程。当正在运行的线程都是守护线程时(当程序中没有用户进程在运行时),Java 虚拟机退出。该方法必须在启动线程前调用。参数:如原创 2020-05-15 12:45:09 · 137 阅读 · 0 评论 -
多线程学习(九)-----线程状态-线程优先级
Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。线程的优先级用数字表示,范围从1~10.◆ Thread.MIN_PRIORITY=1;◆ Thread.MAX_PRIORITY=10;◆ Thread.NORM_PRIORITY=5;使用以下方式改变或获取优先级◆ getPriority()◆ setPriority(int xxx)...原创 2020-05-15 12:42:23 · 103 阅读 · 0 评论 -
多线程学习(八)-----线程状态-观测线程状态
案例:package com.xyc.demo1;/** * 2020/4/6 18:23 * 文件说明: * 监测线程状态 * @author 太阳以西 * 梦可以到的地方,只要努力,总有一天,自己也可以达到! */public class TestState { public static void main(String[] args) throws InterruptedException {// lambda表达式 创建一个临时线程原创 2020-05-15 12:39:00 · 166 阅读 · 0 评论 -
多线程学习(七)-----线程状态-yield详解
线程礼让—yieldvoid yield()//暂停当前正在执行的线程对象,并执行其他线程。(让出本次cpu执行的时间片)//让cpu重新调度,下个时间片可能还是该线程抢到,所以不一定礼让成功实例:public class TestYield implements Runnable { -@Override public void run() { System.out.println(Thread.currentThread().getName()+"开始执原创 2020-05-15 12:36:21 · 185 阅读 · 0 评论 -
多线程学习(五)-----线程状态
图解详细图解:线程停止建议线程正常停止-—->利用次数,不建议死循环。建议使用标志位-——>设置一个标志位不要使用stop或者destroy 等过时或者JDK不建议使用的方法原创 2020-05-15 12:32:18 · 122 阅读 · 0 评论 -
多线程学习(六)-----线程状态-sleep()和join()详解
方法内容static void sleep(long millis)在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)static void join()等待该线程终止。static Thread currentThread()返回对当前正在执行的线程对象的引用★ static void sleep(long millis)方法 * 作用:...原创 2019-04-17 20:22:36 · 180 阅读 · 0 评论 -
多线程学习(四)------线程案例:龟兔赛跑
案例说明:案例:龟兔赛跑-Race1.首先确定赛道距离2.判断比赛是否结束3.打印出胜利者4.龟免赛跑开始5.故事中是乌龟赢的,兔子需要睡觉,所以要模拟兔子睡觉,让乌龟赢得比赛I代码步骤:1、创建Runnable接口的实现类2、定义胜利者 winner3、用for循环(i ~100)模拟路程,并用线程休眠模拟小白兔睡觉4、定义gameOver()方法判断比赛结束,并确定胜利者案例:/** * 2020/4/5 18:01 * 文件说明:案例:龟兔赛跑-Race *原创 2020-05-15 12:20:36 · 447 阅读 · 0 评论 -
多线程学习(三)------线程案例:多人抢票
案例说明:名称:多人抢票说明:多个线程同时操作同一个对象发现问题:当多个人操作同一个对象时,会出现数据紊乱案例:/** * 2020/4/5 17:44 * 文件说明: * 多个线程同时操作同一个对象 * 多人抢票例子 * 发现问题:当多个人操作同一个对象时,会出现数据紊乱 * * @author 太阳以西 * 梦可以到的地方,只要努力,总有一天,自己也可以达到! */public class TestThread3 implem原创 2020-05-15 12:04:50 · 513 阅读 · 0 评论 -
多线程学习(二)-----线程的实现(重点)
多线程英语:multithreading,是指从软件或者硬件上实现多个线程并发执行的技术重点:当多个线程跑起来时,没有先后顺序.线程实现的两种方式:1.继承Thread类class MyThread extends Thread{ public void run{ //逻辑处理 }}//主函数内的启动方式:MyThread myThread = new MyT...原创 2019-04-16 14:01:15 · 131 阅读 · 0 评论 -
多线程学习(一)------什么是线程
Process与Thread程序:指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。进程(Process):执行程序的一次执行过程,一个动态的概念。是系统资源分配的单位线程:是CPU调度和执行的单位一个线程可以包含若干个线程,至少有一个线程注意:很多多线程是模拟出来的,真正的多线程是指有多个cpu,即多核,模拟的多线程,在一个cpu的情况下,在同一个时间点,cpu之能执行一个代码,因为切换的很快,所以就产生了同时的错觉。概念:线程就是独立的执行路径在程序运行时,.原创 2020-05-15 11:18:54 · 105 阅读 · 0 评论