下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

编程语言:java 多线程守护线程

作者:hongxiao2020     来源: https://www.cnblogs.com/hongxiao2020/archive/2020/04/01/1261点击数:906发布时间: 2020-04-10 09:09:16

标签: Linuxjavajava虚拟机

大神带你学编程,欢迎选课

  线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在UnixSystemV及SunOS中也被称为轻量进程(lightweightprocesses),但轻量进程更多指内核线程(kernelthread),而把用户线程(userthread)称为线程。

  线程是独立调度和分派的基本单位。线程可以为操作系统内核调度的内核线程,如Win32线程;由用户进程自行调度的用户线程,如Linux平台的POSIXThread;或者由内核与用户进程,如Windows7的线程,进行混合调度。

  java多线程守护线程

  将该线程标记为守护线程或用户线程。当正在运行的线程都是守护线程时,java虚拟机退出。

  必须在启动线程前调用。

  classStopThreadimplementsRunnable{

  privatebooleanflag=true;

  @Override

  publicvoidrun(){

  while(flag){

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

  }

  }

  publicvoidchangeFlag(){

  flag=false;

  }

  }

  publicclassStopThreadDemo{

  publicstaticvoidmain(String[]args){

  StopThreadst=newStopThread();

  Threadt1=newThread(st);

  Threadt2=newThread(st);

  t1.setDaemon(true);

  t2.setDaemon(true);

  t1.start();

  t2.start();

  intnum=0;

  while(true){

  if(num++==60){

  //st.changeFlag();

  //t1.interrupt();

  //t2.interrupt();

  break;

  }

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

  }

  System.out.println("over");

  }

  }

  同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(callstack),自己的寄存器环境(registercontext),自己的线程本地存储(thread-localstorage)。

  一个进程可以有很多线程,每条线程并行执行不同的任务。

赞(11)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程