
多线程
Unknown To Known
这个作者很懒,什么都没留下…
展开
-
java之死锁问题概述和使用
package cn.itcast_01; /* * 同步的弊端 * A:效率低 * B:容易产生死锁问题 * 死锁:两个或者两个以上的线程在争夺资源的过程中,发生的一种互相等待的问题 * * 举例: * 中国人和美国人吃饭案例 * 正常情况: * 中国:筷子两支 * 美国:刀和叉 * 现在: * 中国:筷子一支,刀一把 * 美国人:筷子一支,叉一把 */ public原创 2020-10-11 21:43:07 · 192 阅读 · 1 评论 -
java之线程池实现多线程方式练习,求和案例
package cn.itcast_02; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; /* * A:创建一个线程池对象,控制创建线程对象的个数 * public static Executo原创 2020-10-10 22:19:39 · 537 阅读 · 0 评论 -
java之使用线程池对象实现多线程思路及代码实现
package cn.itcast_01; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /* * A:创建一个线程池对象,控制创建线程对象的个数 * public static ExecutorService newFixedThreadPool(int nThread) * B:这种线程池的线程可以执行 *原创 2020-10-10 22:17:30 · 148 阅读 · 0 评论 -
多线程面试题之为什么wait(),notify(),notifyAll()等方法都是定义在Object类中
5.为什么wait(),notify(),notifyAll()等方法都是定义在Object类中 因为这些方法的调用是依赖锁对象,而同步代码块的锁对象是任意锁 而Object代码任意的对象,所以,定义在这里面。原创 2020-10-09 21:22:40 · 1335 阅读 · 0 评论 -
多线程面试题之sleep()和wait()方法有什么区别?
4.sleep()和wait()方法有什么区别? sleep();必须指时间,不释放锁 wait();可以不指定时间,也可以指定时间,释放锁原创 2020-10-09 21:21:43 · 772 阅读 · 0 评论 -
多线程面试题之启动一个线程是run()还是start()?他们有什么区别
3.启动一个线程是run()还是start()?他们有什么区别 start(); run():封装了被线程执行的代码,直接调用仅仅是普通方法的调用 start():启动线程,并有JVM自动调用run()方法原创 2020-10-09 21:18:46 · 1476 阅读 · 0 评论 -
多线程面试题之同步有几种方式,分别是什么
2.同步有几种方式,分别是什么 两种 同步代码块 同步方法原创 2020-10-09 21:18:02 · 518 阅读 · 0 评论 -
多线程面试题之多线程有几种实现方案,分别是什么
1.多线程有几种实现方案,分别是什么 两种。 继承Thread类 实现Runnable接口 扩展一种 实现Callable接口。这个得和线程池结合原创 2020-10-09 21:17:26 · 690 阅读 · 0 评论 -
JDK5以后的Lock锁的概述和使用
package cn.itcast_01; /* * 虽然我们可以理解同步代码块和同步方法的锁对象问题, * 但是我们并没有直接看到在哪里加了锁,在哪里放了锁 * 为了跟清晰的表达如何加锁和释放锁 * JDK5以后提供了一个新的锁对象Lock * * Lock: * void lock()获取锁 * void unlock()释放锁 * ReentarntLock是Lock的实现类 */ public class JDK5以后的Lock锁的概述和使用 { pu原创 2020-10-08 22:36:45 · 157 阅读 · 0 评论 -
java之多线程简单总结(在我的博客中每一个都有详细解释和实现)
1.多线程 (1)多线程:一个应用程序有多条执行路径 进程:正在执行的应用程序 线程:进程的执行单元,执行路径 单线程:一个应用程序只有一个执行路径 多线程:一个应用程序有多个执行路径 多进程的意义? 提高CPU的使用率 多线程的意义 提高应用程序的使用率 (2)Java程序的运行原理和JVM启动是多线程吗? A:Java命令去启动JVM,JVM会启动一个原创 2020-10-08 22:29:39 · 123 阅读 · 0 评论 -
java多线程举例买票之买电影票出现的了相同的票和负数票的原因分析和解决方法
【代码】java多线程举例买票之买电影票出现的了相同的票和负数票的原因分析和解决方法。原创 2020-10-06 19:30:54 · 2516 阅读 · 2 评论 -
Runnerable接口实现买票
package cn.itcast_02; public class Runnerable接口实现买票 { public static void main(String[] args) { //创建资源对象 MyRunnable my = new MyRunnable(); //创建三个线程对象 Thread t1 = new Thread(my,"窗口1"); Thread t2 = new Thread(my,"窗口2"); Thread t3 = new Thread(原创 2020-10-06 19:26:07 · 229 阅读 · 0 评论 -
Thread类实现买电影案例
package cn.itcast_01; /* * 某电影院目前正在上映贺岁大片,共有100章票,而它有三个售票窗口,请设计一个程序模拟该电影院售票 * * 继承Thread类来实现 * */ public class Thread类实现买电影案例 { public static void main(String[] args) { //创建三个线程对象 MyThread my1 = new MyThread(); MyThread my2 = new MyThread(原创 2020-10-05 19:11:57 · 1841 阅读 · 2 评论 -
同步的特点,好处,弊端
同步的特点: 前提: 多个线程 解决问题的时候注意: 多个线程使用同一把锁 同步的好处; 同步的出现解决了多线程的安全问题 同步的弊端 当线程相当多的时候,因为每个线程都会去判断同步上的锁 无形中会降低程序的运行效率 import cn.itcast_01.MyRunnable; public class 同步代码原创 2020-10-05 19:10:45 · 3093 阅读 · 0 评论 -
同步代码块的锁及同步方法应用和锁的问题
/同步代码块用obj做锁 //public class MyRunnable implements Runnable { // // //定义100章票 // private static int ticked = 100;// // //创建锁对象 // private Object obj = new Object();原创 2020-10-05 19:10:00 · 798 阅读 · 1 评论 -
线程安全问题的产生原因分析
【代码】线程安全问题的产生原因分析。原创 2020-10-05 19:04:26 · 502 阅读 · 0 评论 -
线程的生命周期 , 实现多线程的两种方式对比(继承Thread类,实现Runnable接口)
面试题:线程的生命周期 四个阶段 新建:创建线程对象 就绪:有执行资格,但没有执行权 运行:有执行权,有执行资格 堵塞: 由于一些操作让线程处于该种状态。没有执行权资格,没有执行权 而另一些操作却可以把它给激活,激活后就处于就绪状态 死亡:线程变成垃圾,等待被回收 实现多线程的方式:2种 方式1:继承Threa原创 2020-10-05 19:03:18 · 222 阅读 · 0 评论 -
java之多线程的概述
【代码】java之多线程的概述。原创 2020-10-03 21:14:47 · 907 阅读 · 1 评论 -
多线程实现方式的思路及代码实现(Runnable接口)
package cn.itcast_01; /* * 方式2:实现Runnable接口 * 步骤: * A:自定义MyRunnable实现Runnable接口 * B:重写run()方法 * C:创建MyRuannable的对象 * D:创建T和read类的对象,并把C步骤的对象作为参数传递 */ public class 多线程方式2的思路及代码实现 { public static void main(String[] args) { //创建MyRunnab原创 2020-10-03 21:13:48 · 421 阅读 · 2 评论 -
进程和线程的概述,多线程和多线程的意义
1.想要了解多线程,必须先了解线程,而想了解线程,必须了解进程,因为线程是依赖于进程而存储在的 2.什么是进程? 通过任务管理器我们就看见了进程的存在 而通过观察,我们发现只有运行的程序才会出现进程 进程:就是正在运送的程序 是系统进行资源分配和调用的独立单位。 每一个进程都有它自己的内存空间和系统资源 3.多进程有什么意义? 单进程的计算机只能做一件事情,而我们现在的计算机都可以进行多件事情:原创 2020-10-02 21:23:40 · 1116 阅读 · 0 评论 -
java之线程控制之中断线程
package cn.itcast_8; import cn.itcast_8.MyThread; /* * public final void stop():让线程停止,过时了,但是还可以使用 * public void interrupt():中断线程。把线程的状态终止,并抛出异常 */ public class 线程控制之中断线程 { public static void main(String[] args) { //创建对象 MyThre原创 2020-10-02 21:21:47 · 128 阅读 · 0 评论 -
java之线程控制之守护线程
package cn.itcast_07; import cn.itcast_07.MyThread; /* * * public final void setDaemon(boolean on):将该线程标记为守护线程或用户线程 * 当正在运行的线程都是守护线程时,Java虚拟机退出。该方法必须在启动线程前调用 * */ public class 线程控制之守护线程 { public static void main(String[] args) { //创建对象原创 2020-10-01 11:00:34 · 175 阅读 · 0 评论 -
java之线程控制之礼让线程
线程控制之礼让线程 礼让线程 package cn.itcast_06; /* * public static void yield() * 暂停当前正在执行的线程对象,并执行其他线程。 * 使线程们尽量你一次她一次(和谐)的出现 */ public class MyThread extends Thread { @Override public void run() { for(int x = 1;x<100;x++) { Sy原创 2020-10-01 10:54:01 · 151 阅读 · 0 评论 -
java之线程控制之加入线程
package cn.itcast_05; /* * public final void join():等待线程终止 * * 是为了让某一个线程执行完毕,后再执行其他线程 * */ public class 线程控制之加入线程 { public static void main(String[] args) { //创建对象 MyThread my1 = new MyThread(); MyThread my2 = new MyThread(); MyThread my3原创 2020-09-30 19:55:30 · 273 阅读 · 0 评论 -
java之线程控制之休眠线程
线程控制之休眠线程 添加到线程里面,当调用是自动启动 package cn.itcast_04; import java.util.Date; public class MyThread extends Thread { public MyThread() { } public MyThread(String name) { super(name); } @Override public void run() { for(int x = 1;x<100原创 2020-09-30 19:54:54 · 315 阅读 · 0 评论 -
java多线程之线程调度及获取和设置线程优先级
package cn.itcast_03; /* * Java是如何对线程进行调用呢? * 线程有两种调度模型: * 分时调度模型 : * 所有线程轮流使用CPU的使用权, * 平均分配每个线程的占用CPU的时间 * 抢占式调度模型: * 优先让优先级高的线程使用CPU,如果线程的优先级 *原创 2020-09-29 21:51:51 · 554 阅读 · 2 评论 -
java多线程之获取和设置线程对象名称
package cn.itcast_02; /* * 如何获取线程的对象名称呢? * public final String getName():获取线程的名称 * 如何设置线程对象名称 * public final void setName(String name):设置线程的名称 * * 针对不是Thread类中的子类如何获取线程对象呢? * public static Thread currentThread();返回当前执行的线程对象 * Thread.currentThre原创 2020-09-29 21:49:22 · 586 阅读 · 0 评论 -
java之如何实现多线程及其多线程方式的思路 (继承Thread类)
package cn.itcast_01; /* * 需求:我们要实现多线程的程序 * 如何实现: * 由于线程是依赖于进程而存在的,所以我们应该先创建一个进程出来 * 而进程是由系统创建的,所以我们应该去调用系统功能创建一个进程 * 但是,Java是不能直接调用系统功能的,所以,我们没有办法直接实现多线程程序 * 但是呢,Java可以直接调用C/C++写好的程序来实现多线程程序 * 由于C/C++去调用系统功能创建进程,然后Java原创 2020-09-28 22:34:59 · 369 阅读 · 0 评论