美文网首页
JAVA多线程编程

JAVA多线程编程

作者: 士多啤梨苹果橙_cc15 | 来源:发表于2017-06-01 11:00 被阅读0次

为什么要使用多线程?

1. 使用更多的处理器核心

2. 更快的响应时间

3. 更好的编程模型

线程优先级

在Java线程中,通过一个整型成员变量priority来控制优先级,优先级的范围从1-10。

线程的状态:NEW / RUNNABLE / BLOCKED / WAITING / TIME_WAITING /TERMINATED一共6种状态

Deamon线程是一种支持型线程,因为它主要被用作程序中后台调度以及支持性工作。这意味着当一个Java虚拟机中不存在非Deamon线程的时候,java虚拟机将会退出。可以通过set方法将线程设置为Deamon线程。(注意其finally可能不会被执行)

-->启动和终止线程

通过调用线程的start()方法进行启动。

构造线程:一个新构造的线程对象是由其parent线程来进行空间分配的,而child线程继承了parent是否为Deamon、优先级和加载资源的contextClassLoader等。初始化完成后在堆内存中等待运行。

启动线程:线程对象在初始化完成后调用start()方法就可以启动这个线程。start()方法的含义是:当前线程(parent线程)同步告知java虚拟机,只要线程规划器空闲,应立即调用start()方法的线程

理解中断:中断可以理解为线程的一个标志位属性,它表示一个运行中的线程是否被其他线程进行了中断操作。其他线程通过调用该线程的interrupt()方法对其进行中断操作。

过期的suspend() / resume() / stop()(为什么过期了?)不建议使用的原因主要是以suspend()方法为例,在调用后,线程不会释放已经占用的资源(比如锁),而是占用着资源进入睡眠状态,这样容易引发死锁问题

如何安全地终止线程?使用中断。中断操作是一种简便的线程间的交互方式,而这种交互方式最适合用来取消或者停止任务。除了中断以外还可以利用一个boolean变量来控制是否需要停止任务并终止该线程。

main线程通过中断操作和cancle()方法均可使CountThread得以终止。这种通过标志位或者中断操作的方式能够使线程在终止时有机会去清理资源,而不是武断地将线程停止,因此这种终止线程的方法更加安全,优雅。

相关文章

  • 2018-10-16

    Java编程思想 1~12 java多线程编程核心技术 23~57

  • Java多线程学习:Future、Callable

    Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四) 最近在写清结算文件...

  • 史上最全Java多线程面试题及答案

    多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域。所以,学好多线程并发编程对Java程序员来来说...

  • Java架构师阅读书单

    一、内功心法 Java基础: 《Java核心技术》《Java编程思想》《Effective Java》 多线程...

  • Java多线程高级特性(JDK8)

    [TOC] 一、Java多线程 1.Java多线程基础知识 Java 给多线程编程提供了内置的支持。一条线程指的是...

  • 线程(Thread)

    Java 多线程编程 Java 给多线程编程提供了内置的支持。一个多线程程序包含两个或多个能并发运行的部分。程序的...

  • Java多线程编程核心技术【笔记】

    Java多线程编程核心技术【笔记】 第一章 Java多线程技能 使用多线程的场景? 阻塞 多线程提高运行效率 依赖...

  • Java socket

    Java Socket实现基于TCP和UDP多线程通信Java Socket编程

  • Java多线程

    Java 多线程编程Java 给多线程编程提供了内置的支持。一个多线程程序包含两个或多个能并发运行的部分。程序的每...

  • Java多线程

    Java 多线程编程 Java给多线程编程提供了内置的支持。一个多线程程序包含两个或多个能并发运行的部分。程序的每...

网友评论

      本文标题:JAVA多线程编程

      本文链接:https://www.haomeiwen.com/subject/mwjjfxtx.html