加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

带你聊聊 Java 并发编程之线程基础

发布时间:2019-11-08 02:04:31 所属栏目:建站 来源:小九
导读:副标题#e# 【线下技术沙龙】11月23日,多云时代开启企业业务新高度,安全如何与时俱进? 01、简介 百丈高楼平地起,要想学好多线程,首先还是的了解一下线程的基础,这边文章将带着大家来了解一下线程的基础知识。 02、线程的创建方式 实现 Runnable 接口

看下代码:

  1. public class ThreadA extends Thread { 
  2.  
  3.     public static void main(String[] args) { 
  4.         ThreadA a = new ThreadA(); 
  5.         System.out.println(a.getPriority());//5 
  6.         a.setPriority(8); 
  7.         System.out.println(a.getPriority());//8 
  8.     } 

线程优先级特性:

  1. 继承性:比如 A 线程启动 B 线程,则B线程的优先级与 A 是一样的。
  2. 规则性:高优先级的线程总是大部分先执行完,但不代表高优先级线程全部先执行完。
  3. 随机性:优先级较高的线程不一定每一次都先执行完。

05、线程的停止

  1. stop() 方法,这个方法已经标记为过时了,强制停止线程,相当于 kill -9。
  2. interrupt() 方法,优雅的停止线程。告诉线程可以停止了,至于线程什么时候停止,取决于线程自身。

看下停止线程的代码:

  1. public class InterruptDemo { 
  2.     private static int i ; 
  3.     public static void main(String[] args) throws InterruptedException { 
  4.         Thread thread = new Thread(() -> { 
  5.             //默认情况下isInterrupted 返回 false、通过 thread.interrupt 变成了 true 
  6.             while (!Thread.currentThread().isInterrupted()) { 
  7.                 i++; 
  8.             } 
  9.             System.out.println("Num:" + i); 
  10.         }, "interruptDemo"); 
  11.         thread.start(); 
  12.         TimeUnit.SECONDS.sleep(1); 
  13.         thread.interrupt(); //不加这句,thread线程不会停止 
  14.     } 

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读