美文网首页
Java多线程相关(一)

Java多线程相关(一)

作者: CTPlayer | 来源:发表于2018-07-24 23:37 被阅读0次

进程与线程:

进程是受操作系统管理的基本运行单元,线程可以理解成是在进程中运行的子任务。

对于单核单线程CPU而言,同时只可运行一个线程,cpu在任务之间不停的切换,由于切换速度非常快,给使用者的感受就是这些任务似乎在同时运行。这是多线程技术的优点,使用多线程也就是在使用异步。

对于多核多线程CPU而言,能够同时运行的线程数增加,相应各任务之间切换速度更加快,所以多核心CPU的运行速度更加快。


线程的start()和run()方法:

Thread.java类中的start()方法通知“线程规划器”此线程已准备就绪,等待调用线程对象的run()方法,具有异步执行的效果。如果使用thread.run()方法就不是异步执行了,而是同步,那么此线程对象并不交给“线程规划器”来进行处理,必须等待run()方法中的代码执行完之后才能调用后面的方法。


实现多线程编程的方式有两种:

继承Thread类,实现Runnable接口。使用继承方式来开发多线程应用程序在设计上是有局限性的,因为Java是单根继承,不支持多继承。Thread.java类也实现了Runnable接口,也就意味着Thread(Runnable target)不光可以传入Runnable接口的对象,还可以将一个Thread对象中的run()方法交由其他线程进行调用。


非线程安全:

非线程安全主要是指多个线程对同一个对象中的同一个实例变量进行操作时会出现值被更改、值不同步的情况,进而影响程序的执行流程。通过在代码前加synchronized关键字加锁来解决问题。


currentThread()方法:

返回当前代码段正在被哪个线程调用的信息。

isAlive()方法:

测试线程是否处于活跃状态即线程已经启动且尚未终止。


判断线程状态是否是停止状态:

this.interrupted():测试当前线程是否已经是中断状态,执行后具有将状态标志清除为false的功能。

this.isInterupted():测试线程Thred对象是否已经是中断状态,但不清除状态标志。

interrupt()方法只是为线程设置中断标记,线程中还需通过if(this.interrupted())和return来中断线程。

相关文章

  • Android 高级面试-3:语言相关

    主要内容:Kotlin, Java, RxJava, 多线程/并发, 集合 1、Java 相关 1.1 缓存相关 ...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • 学习方向

    JAVA基础 多线程、JUC(Java Util Concurrency)、IO、集合 JVM相关 高并发 Spr...

  • Android下多线程的实现

    Android下多线程相关 线程安全相关问题参考:java内存模型与线程 android下与多线程有关的主要有以下...

  • Java基础(三)

    Java要点3 JAVA多线程相关 Thread、Runnable、Callable、Futrue类关系与区别 R...

  • Java多线程相关(一)

    进程与线程: 进程是受操作系统管理的基本运行单元,线程可以理解成是在进程中运行的子任务。 对于单核单线程CPU而言...

  • java多线程相关

    (一) 基础篇 01.Java多线程系列--“基础篇”01之 基本概念 02.Java多线程系列--“基础篇”02...

  • Java多线程相关

    1.线程状态 1.NEW状态 创建了一个Thread对象,并没有处于执行状态,因为没有调用start方法启动该线程...

  • java多线程相关

    今天看了一点java多线程的东西,学习了两个关键字。第一个是 synchronized,字面上是同步的意思,用来修...

  • java多线程相关

    java多线程

网友评论

      本文标题:Java多线程相关(一)

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