java 多线程 控制_java学习笔记 --- 多线程(多线程的控制)

1、线程休眠

public static void sleep(long millis)

public class ThreadSleep extendsThread {

@Overridepublic voidrun() {for (int x = 0; x < 100; x++) {

System.out.println(getName()+ ":" + x + ",日期:" + newDate());//睡眠//困了,我稍微休息1秒钟

try{

Thread.sleep(1000);

}catch(InterruptedException e) {

e.printStackTrace();

}

}

}

}/** 线程休眠

* public static void sleep(long millis)*/

public classThreadSleepDemo {public static voidmain(String[] args) {

ThreadSleep ts1= newThreadSleep();

ThreadSleep ts2= newThreadSleep();

ThreadSleep ts3= newThreadSleep();

ts1.setName("林青霞");

ts2.setName("林志玲");

ts3.setName("林志颖");

ts1.start();

ts2.start();

ts3.start();

}

}

2 、加入线程:加入进来的线程执行结束后才执行其他线程

public final void join():等待该线程终止,才执行其他线程

public class ThreadJoin extendsThread {

@Overridepublic voidrun() {for (int x = 0; x < 100; x++) {

System.out.println(getName()+ ":" +x);

}

}

}/** public final void join():等待该线程终止。*/

public classThreadJoinDemo {public static voidmain(String[] args) {

ThreadJoin tj1= newThreadJoin();

ThreadJoin tj2= newThreadJoin();

ThreadJoin tj3= newThreadJoin();

tj1.setName("李渊");

tj2.setName("李世民");

tj3.setName("李元霸");//先执行完"李渊"在执行其他线程

tj1.start();try{

tj1.join();

}catch(InterruptedException e) {

e.printStackTrace();

}

tj2.start();

tj3.start();

}

}

3、礼让线程:暂停当前正在执行的线程对象,并执行其他线程。

public static void yield():暂停当前正在执行的线程对象,并执行其他线程。

让多个线程的执行更和谐,但是不能靠它保证一人一次。

public class ThreadYield extendsThread {

@Overridepublic voidrun() {for (int x = 0; x < 100; x++) {

System.out.println(getName()+ ":" +x);

//调用礼让线程方法 Thread.yield();

}

}

}/** public static void yield():暂停当前正在执行的线程对象,并执行其他线程。

* 让多个线程的执行更和谐,但是不能靠它保证一人一次。*/

public classThreadYieldDemo {public static voidmain(String[] args) {

ThreadYield ty1= newThreadYield();

ThreadYield ty2= newThreadYield();

ty1.setName("线程1");

ty2.setName("线程2");

ty1.start();

ty2.start();

}

}

4、后台线程(守护线程):主线程结束后,守护线程也会跟着终止

public final void setDaemon(boolean on):将该线程标记为守护线程或用户线程。

守护线程和一般线程的区别:

1、守护线程就是main同生共死,当main退出,它将终止,而普通线程是在任务执行结束才停止。

2、Java虚拟机在它所有非守护线程已经离开后自动离开。守护线程则是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去。

public class ThreadDaemon extendsThread {

@Overridepublic voidrun() {for (int x = 0; x < 100; x++) {

System.out.println(getName()+ ":" +x);

}

}

}/** public final void setDaemon(boolean on):将该线程标记为守护线程或用户线程。

* 当正在运行的线程都是守护线程时,Java 虚拟机退出。 该方法必须在启动线程前调用。

*

* 游戏:坦克大战。*/

public classThreadDaemonDemo {public static voidmain(String[] args) {

ThreadDaemon td1= newThreadDaemon();

ThreadDaemon td2= newThreadDaemon();

td1.setName("关羽");

td2.setName("张飞");//设置收获线程 td1.setDaemon(true);

td2.setDaemon(true);

//守护线程必须在线程启动前设置 td1.start();

td2.start();

Thread.currentThread().setName("刘备");for (int x = 0; x < 5; x++) {

System.out.println(Thread.currentThread().getName()+ ":" +x);

}

}

}

5、终止线程

public final void stop():让线程停止,过时了,但是还可以使用。

public void interrupt():中断线程。 把线程的状态终止,并抛出一个InterruptedException。

public class ThreadStop extendsThread {

@Overridepublic voidrun() {

System.out.println("开始执行:" + newDate());//我要休息10秒钟,亲,不要打扰我哦

try{

Thread.sleep(10000);

}catch(InterruptedException e) {//e.printStackTrace();

System.out.println("线程被终止了");

}

System.out.println("结束执行:" + newDate());

}

}/** public final void stop():让线程停止,过时了,但是还可以使用。

* public void interrupt():中断线程。 把线程的状态终止,并抛出一个InterruptedException。*/

public classThreadStopDemo {public static voidmain(String[] args) {

ThreadStop ts= newThreadStop();

ts.start();//你超过三秒不醒过来,我就干死你

try{

Thread.sleep(3000);//ts.stop();

ts.interrupt();

}catch(InterruptedException e) {

e.printStackTrace();

}

}

}

6、线程的优先级设置

线程默认优先级是5。

线程优先级的范围是:1-10。

线程优先级高仅仅表示线程获取的 CPU时间片的几率高,但是要在次数比较多,或者多次运行的时候才能看到比较好的效果。

设置线程优先级的方法:

public final int getPriority():返回线程对象的优先级

public final void setPriority(int newPriority):更改线程的优先级

IllegalArgumentException:非法参数异常。

抛出的异常表明向方法传递了一个不合法或不正确的参数

public class ThreadPriority extendsThread {

@Overridepublic voidrun() {for (int x = 0; x < 100; x++) {

System.out.println(getName()+ ":" +x);

}

}

}public classThreadPriorityDemo {public static voidmain(String[] args) {

ThreadPriority tp1= newThreadPriority();

ThreadPriority tp2= newThreadPriority();

ThreadPriority tp3= newThreadPriority();

tp1.setName("东方不败");

tp2.setName("岳不群");

tp3.setName("林平之");//获取默认优先级,线程的默认优先级为5//System.out.println(tp1.getPriority());//System.out.println(tp2.getPriority());//System.out.println(tp3.getPriority());//设置线程优先级,错误:线程的优先级范围:1-10//tp1.setPriority(100000);//设置正确的线程优先级

tp1.setPriority(10);

tp2.setPriority(1);

tp1.start();

tp2.start();

tp3.start();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值