Thread_多线程
辐_射
这个作者很懒,什么都没留下…
展开
-
多线程_死锁问题概述和使用
package cn.itcast_02;/* * 同步的弊端: * A:效率低 * B:容易产生死锁 * * 死锁: * 两个或者两个以上的线程在争夺资源的过程中,发生的一种相互等待的现象。 * * 举例: * 中国人,美国人吃饭案便。 * 正常情况: * 中国人:筷子2支 * 美国人:刀和叉 * 现在: * 中国人:原创 2017-03-16 23:13:08 · 311 阅读 · 0 评论 -
多线程_定时删除指定的带内容目录
package cn.itcast_12;import java.io.File;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;/* * 需求:在指定原创 2017-03-21 23:05:12 · 432 阅读 · 0 评论 -
多线程_定时任务的多次执行代码体现
package cn.itcast_12;import java.util.Timer;import java.util.TimerTask;/* * 定时器:可以让我们在指定的时间做某件事情,还可以重复的做某年事性。 * 依赖Timer和TimerTask这两个类: * Timer:定时 * public Timer():创建一个新计时器。 * public vo原创 2017-03-21 22:31:21 · 892 阅读 · 0 评论 -
多线程_定时器的概述和使用
package cn.itcast_12;import java.util.Timer;import java.util.TimerTask;/* * 定时器:可以让我们在指定的时间做某件事情,还可以重复的做某年事性。 * 依赖Timer和TimerTask这两个类: * Timer:定时 * public Timer():创建一个新计时器。 * public vo原创 2017-03-21 22:07:01 · 420 阅读 · 0 评论 -
多线程_继承Thread类的方式卖电影票案例
package cn.itcast_06;/* * 某电影院正在上映贺岁大片(情圣,超级快递),共有100张票,而他有3个窗品售票,请设置一个程序模拟该电影院售票。 * 继承Thread类实现 */public class SellTicketDemo { public static void main(String[] args) { //创建三个线程对象 SellTicke原创 2017-03-11 20:04:19 · 1351 阅读 · 0 评论 -
多线程_多线程两种方式的图解比较及区别
原创 2017-03-11 19:17:52 · 600 阅读 · 0 评论 -
多线程_Java程序运行原理和JVM的启动是多线程的吗
Java程序的运行原理: 由java命令启动jvm,jvm启动就相当于启动了一个进程。 接着由该进程创建一个主线程去调用main方法。 思考问题: jvm虚拟机的启动是单线程的还是多线程的? 多线程的。 原因是垃圾回收线程也要先启动,否则很容易会出现内存溢出。 现在的垃圾回收线程加上前面的主线程,最底启动了两个线程,所以,jvm的启动是多线程的。原创 2017-03-07 22:50:29 · 1815 阅读 · 0 评论 -
多线程_多线程举例及并行和并发的区别
package cn.itcast_01;/* * 进程: * 正在运行的程序,是系统进行资源分配和调用的独立单位。 * 每一个进程都有它自已的内存空间和系统资源。 * 线程: * 是进程的中单个顺序控制流,是一条执行路径 * 一个进程如果只有一条执行路径,则称为单线程程序。 * 一个进程如果有多条执行路径,则称为多线程程序。 * * 举例: * 扫原创 2017-03-07 22:18:05 · 1355 阅读 · 0 评论 -
多线程_多线程方式2的思路及代码实现
package cn.itcast_05;/* * 方式2:实现Runnable接口 * 步骤: * A:自定义MyRunnable实现Runnable接口 * B:重写run()方法 * C:创建MyRunnable类的对象 * D:创建Thread类对象,并把C步骤的对象作为构造参数的传递。 */public class MyRunnableDemo {原创 2017-03-10 22:30:13 · 309 阅读 · 0 评论 -
多线程_匿名内部类的方式实现多线程程序
package cn.itcast_11;/* * 匿名内部类的格式: * new 类名或者接口名{ * 重写方法; * }; * 本质:是该类或者接口的子类对象。 */public class ThreadDemo { public static void main(String[] args) { // 继承Thread类来实现多线程 new Th原创 2017-03-20 23:29:07 · 461 阅读 · 0 评论 -
多线程_多线程常见的面试题
1:多线程有几种实现方案,分别是哪几种? 两种。 继承Thread类 实现Runnable接口 扩展一种:实现Callable接口。这个得和线程池结合。2:同步有几种方式,分别是什么? 两种。 同步代码块 同步方法3:启动一个线程是run()还是start()?它们的区别? start(); run():封装了被线程执行的代码,直接调用仅仅是普通方法的调用原创 2017-03-21 23:19:11 · 945 阅读 · 0 评论 -
多线程_线程池的概述和使用
package cn.itcast_08;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/* * 线程池的好处:线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用。 * * 如何实现线程池的代码呢? * A:创原创 2017-03-19 22:14:52 · 358 阅读 · 0 评论 -
多线程_买电影票出现了同票和负数票的原因分析
package cn.itcast_08;/* * 某电影院正在上映贺岁大片(情圣,超级快递),共有100张票,而他有3个窗品售票,请设置一个程序模拟该电影院售票。 * 实现Runnable接口 * * 通过加入延迟后,就产生了两个问题: * A:相同的票出现多次 * CPU一次操作必须是原子性的。 * B:出现了负数票 * 随即性和延迟性导致的。 */原创 2017-03-12 19:47:55 · 2115 阅读 · 0 评论 -
多线程_DK5之后的Lock锁的概述和使用
package cn.itcast_01;/* * 虽然我们可以理同步代码块和同步方法的锁对象问题,但是我们没有直接看到在哪里加上了锁,在哪里释放了锁。 * 为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock。 * * Lock: * void lock():获取锁(加锁)。 * void unlock():释放锁(解锁)。 * Reentrant原创 2017-03-16 19:48:50 · 464 阅读 · 0 评论 -
多线程、设计模式_总结
1:多线程(理解) (1)JDK5以后的针对线程的锁定操作和释放操作 Lock锁 (2)死锁问题的描述和代码体现 (3)生产者和消费者多线程体现(线程间通信问题) 以学生作为资源来实现的 资源类:Student 设置数据类:SetThread(生产者) 获取数据类:GetThread(消费者) 测试类:StudentDemo 代码: A:最基本的原创 2017-03-23 23:30:23 · 651 阅读 · 0 评论 -
多线程_多线程总结
1:多线程(理解) (1)多线程:一个应用程序有多条执行路径 进程:正在执行的应用程序 线程:进程的执行单元,执行路径 单线程:一个应用程序只有一条执行路径 多线程:一个应用程序有多条执行路径 多进程的意义? 提高CPU的使用率 多线程的意义? 提高应用程序的使用率 (2)Java程序的运行原理及JVM的启动是多线程的吗? A:Java命令去启动J原创 2017-03-13 00:20:42 · 509 阅读 · 0 评论 -
多线程_以前的线程安全的类回顾
package cn.itcast_12;import java.util.ArrayList;import java.util.Collections;import java.util.Hashtable;import java.util.List;import java.util.Vector;public class ThreadDemo { public static v原创 2017-03-12 23:53:15 · 546 阅读 · 0 评论 -
多线程_同步代码快的锁及同步方法应用和锁的问题
package cn.itcast_11;/* * A:同步代码块的锁对象是谁呢? * 任意对象。 * * B:同步方法的格式及锁对象问题? * 把同步关键字加在方法上。 * * 同步方法是谁? * this。 * * C:静态方法及锁对象问题? * 静态方法的锁对象是谁呢? * 类的字解码文件对象。(当前类.class) */pu原创 2017-03-12 23:37:53 · 357 阅读 · 0 评论 -
多线程_同步的特点及好处和弊端
package cn.itcast_10;/* * 举例: * 火车上厕所。 * 一节车箱里面的所有人(多线程),1号座位去上厕所(共享资源)门(synchronized)关上了,其它人进不去了。 * * 同步的特点: * 前提: * 多线程。 * 解决问题的时候要注意: * 多个线程使用的是同一个锁对象。 * 同步的好处: * 同原创 2017-03-12 23:07:17 · 2095 阅读 · 0 评论 -
多线程_同步代码块解决线程安全问题的解释
package cn.itcast_10;public class SellTicketDemo { public static void main(String[] args) { // 创建资源对象 SellTicket st = new SellTicket(); // 创建线程对象 Thread t1 = new Thread(st, "窗口1"); Threa原创 2017-03-12 22:54:56 · 389 阅读 · 0 评论 -
多线程_同步代码块的方式解决线程安全问题
package cn.itcast_09;/* * 如何解决线程安全问题呢? * * 要想解决问题,就要知道哪些原因会导致出问题:(而且这些原因也是以后我们判断一个程序是否有线程安全问题的标准) * A:是否是多线程环境 * B:是否有共享数据 * C:是否有多条语句操作共享数据 * 那这个售票程序有没有上面的问题呢? * A:是否是多线程环境 是(t1,t2原创 2017-03-12 20:37:49 · 524 阅读 · 0 评论 -
多线程_线程安全问题的产生原因分析
package cn.itcast_09;/* * 如何解决线程安全问题呢? * * 要想解决问题,就要知道哪些原因会导致出问题:(而且这些原因也是以后我们判断一个程序是否有线程安全问题的标准) * A:是否是多线程环境 * B:是否有共享数据 * C:是否有多条语句操作共享数据 * 那这个售票程序有没有上面的问题呢? * A:是否是多线程环境 是(t1,t2原创 2017-03-12 20:06:39 · 1576 阅读 · 0 评论 -
多线程_线程生命周期图解
原创 2017-03-09 23:00:22 · 484 阅读 · 0 评论 -
多线程_线程概述及多线程的意义
1:要想了解多线程,必须先了解线程,而要想了解线程,必须先了解进程,因为线程是依赖于进程而存在的。2:什么进程? 通过任务管理器我们看到了进程的存在。 而通过观察,我们发现只有运行的程序才会出现进程。 进程:正在运行的程序。 进程 是系统进行资源分配和调用的独立单位。每一个进程都有它自已的内存空间和系统资源。3:多进程有什么意义? 单进程的计算机只能做一件事情,而我们现在的计算机原创 2017-03-06 23:16:31 · 3170 阅读 · 0 评论 -
多线程_线程调度及获取和设置线程优先级
package cn.itcast_04;/* * 我们的线程没有设置优先级,肯定有默认优先级。 * 那么,默认优先级是多少呢? * 如何获取线程对象的优先级? * public final int getPriority():返回线程对象的优先级。 * 如何设置线程对象的优先级呢? * public final void setPriority(int newPrior原创 2017-03-08 23:53:32 · 3455 阅读 · 0 评论 -
多线程_获取和设置线程对象名称
package cn.itcast_03;/* * 如何获取线程对象的名称呢? * public final String getName():获取线程名称。 * 如何设置线程对象的名称呢? * public final void setName(String name):设置线程的名称。 * * 针对不是继承Thread类的子类该如何获取线程名称呢? * publ原创 2017-03-08 22:57:12 · 2434 阅读 · 0 评论 -
多线程_线程的状态转换图及常见执行情况
原创 2017-03-17 23:14:26 · 746 阅读 · 0 评论 -
多线程_生产者消费者之等待唤醒机制代码分析
测试类:StudentDemopackage cn.itcast_05;/* * 分析: * 资源类:Student * 设置学生数据:SetThread(生产者) * 获取学生数据:GetThread(消费者) * 测试类:StudentDemo * * 问题1:按照思路写代码,发现数据每次都是:null----0 * 原因:我们在每个线程中都创建了新的原创 2017-03-17 23:03:59 · 351 阅读 · 0 评论 -
多线程_生产者消费者之等待唤醒机制思路图解
原创 2017-03-17 22:16:42 · 319 阅读 · 0 评论 -
多线程_生产者消费者题代码2并解决线程安全问题
测试类:StudentDemopackage cn.itcast_04;/* * 分析: * 资源类:Student * 设置学生数据:SetThread(生产者) * 获取学生数据:GetThread(消费者) * 测试类:StudentDemo * * 问题1:按照思路写代码,发现数据每次都是:null----0 * 原因:我们在每个线程中都创建了新的原创 2017-03-17 21:54:06 · 346 阅读 · 0 评论 -
多线程_生产者消费者问题代码1
测试类:StudentDemopackage cn.itcast_03;/* * 分析: * 资源类:Student * 设置学生数据:SetThread(生产者) * 获取学生数据:GetThread(消费者) * 测试类:StudentDemo * * 问题1:按照思路写代码,发现数据每次都是:null----0 * 原因:我们在每个线程中都创建了新的原创 2017-03-17 20:36:27 · 663 阅读 · 0 评论 -
多线程_生产者消费者问题描述图
原创 2017-03-17 20:03:11 · 465 阅读 · 0 评论 -
多线程_线程组的概述和使用
package cn.itcast_06;/* * 线程组:把多个线程组全在一起。 * 它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制。 */public class ThreadGroupDemo { public static void main(String[] args) { method1(); // 我们如何修改线程所在的组呢? // 创原创 2017-03-19 00:03:33 · 1059 阅读 · 0 评论 -
多线程_生产者消费者之等待唤醒机制代码优化
测试类:StudentDemopackage cn.itcast_07;/* * 分析: * 资源类:Student * 设置学生数据:SetThread(生产者) * 获取学生数据:GetThread(消费者) * 测试类:StudentDemo * * 问题1:按照思路写代码,发现数据每次都是:null----0 * 原因:我们在每个线程中都创建了新的原创 2017-03-19 00:25:16 · 377 阅读 · 0 评论 -
多线程_线程控制之休眠线程
package cn.itcast_04;/* * 线程休眠: * public static void sleep(long millis):在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。 */public class ThreadSleepDemo { public static void main(String[]原创 2017-03-09 19:47:56 · 1416 阅读 · 0 评论 -
多线程_进程概述及多进程的意义
1:要想了解多线程,必须先了解线程,而要想了解线程,必须先了解进程,因为线程是依赖于进程而存在的。2:什么进程? 通过任务管理器我们看到了进程的存在。 而通过观察,我们发现只有运行的程序才会出现进程。 进程:正在运行的程序。 进程 是系统进行资源分配和调用的独立单位。每一个进程都有它自已的内存空间和系统资源。3:多进程有什么意义? 单进程的计算机只能做一件事情,而我们现在的计算机原创 2017-03-06 22:47:54 · 1706 阅读 · 0 评论 -
多线程_生产者消费者之等待唤醒机制代码实现
测试类:StudentDemopackage cn.itcast_05;/* * 分析: * 资源类:Student * 设置学生数据:SetThread(生产者) * 获取学生数据:GetThread(消费者) * 测试类:StudentDemo * * 问题1:按照思路写代码,发现数据每次都是:null----0 * 原因:我们在每个线程中都创建了新的原创 2017-03-17 22:51:22 · 587 阅读 · 0 评论 -
多线程_多线程程序的引入
原创 2017-03-06 20:32:01 · 306 阅读 · 0 评论 -
多线程_多线程方式3的求和案例
package cn.itcast_10;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;/* * 多线原创 2017-03-19 23:28:53 · 1285 阅读 · 0 评论 -
多线程_多线程方式3的思路及代码实现
package cn.itcast_09;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/* * 多线程实现的方式3: * A:创建一个线程池对象,控制要创建几个线程对象。 * public static ExecutorService newFixedT原创 2017-03-19 22:40:18 · 674 阅读 · 0 评论