线程的分类

1.主线程
main方法。

2.精灵线程
特点:
(1)设置为精灵线程的方法:setDaemon(true);
(2)其他线程结束了 精灵线程也完了
(3)又叫守护线程或者后台线程

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.Date;

public class Test8 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // 使用后台线程创建10个临时文件

        Thread  t =new Thread(new Runnable(){
            @Override
            public void run() {
                //取出当前程序的运行目录
            URL url=    Test8.class.getClassLoader().getResource("");
            String dir =url.getFile();
            //URLEncoder.encode(dir);  中文路径    编码
                //创建临时文件
            for (int i = 0; i < 10; i++) {
                 File f=new File(dir,"tmp"+i+".txt");
                                 if(!f.exists()){
          try {
                                               Thread.sleep(1000);
          } catch (InterruptedException e) {

                               e.printStackTrace();
            }
          try {
                            f.createNewFile();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }

                    }

                }

            }
        });
        t.setDaemon(true);//设置精灵线程
        t.start();

        for(int i=0;i<=10000;i++){
            System.out.println(Thread.currentThread.getName()+"\t"+i);
        }

    }

}

3.子线程
new 出来的线程



线程的属性
编号:id ,
名字:name ,
优先级:priority 1-》10 默认为5
ThreadGroup线程组

案例

import java.util.Date;

public class Test7 {

    public static void main(String[] args) {
        //主线程
        Thread t=Thread.currentThread();//取得当前程序所在的线程

        //一个线程的信息
        System.out.println("线程名"+ t.getName());
        System.out.println("线程的编号id"+ t.getId());
        System.out.println("线程的优先级"+ t.getPriority());//5     1-10
        System.out.println("线程组"+ t.getThreadGroup());

        ThreadGroup tg =new ThreadGroup("线程组");
        Mytime3 mt =new Mytime3(tg,new Runnable(){ //Thread里面有个构造方法  设置线程组
            @Override
            public void run() {
                boolean flag=true;
                while(flag){
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {

                        e.printStackTrace();
                    }

                    Date d=new Date();
                    System.out.println(d);
                }

            }

        });
        mt.setName("新线程");
        mt.setPriority(10);

        mt.start();

        System.out.println("线程名"+ mt.getName());
        System.out.println("线程的编号id"+ mt.getId());
        System.out.println("线程的优先级"+ mt.getPriority());//5     1-10
        System.out.println("线程组"+ mt.getThreadGroup());

    }
}
class Mytime3 extends Thread{

    public Mytime3(){}

    public Mytime3(ThreadGroup tg,Runnable r){
        super(tg,r);

    }

}
时间: 2025-01-19 19:00:21

线程的分类的相关文章

Netty线程模型详解

1. 背景 1.1. Java线程模型的演进 1.1.1. 单线程 时间回到十几年前,那时主流的CPU都还是单核(除了商用高性能的小机),CPU的核心频率是机器最重要的指标之一. 在Java领域当时比较流行的是单线程编程,对于CPU密集型的应用程序而言,频繁的通过多线程进行协作和抢占时间片反而会降低性能. 1.1.2. 多线程 随着硬件性能的提升,CPU的核数越来越越多,很多服务器标配已经达到32或64核.通过多线程并发编程,可以充分利用多核CPU的处理能力,提升系统的处理效率和并发性能. 从2

Netty的线程模型

1. 背景 1.1. Java线程模型的演进 1.1.1. 单线程 时间回到十几年前,那时主流的CPU都还是单核(除了商用高性能的小机),CPU的核心频率是机器最重要的指标之一. 在Java领域当时比较流行的是单线程编程,对于CPU密集型的应用程序而言,频繁的通过多线程进行协作和抢占时间片反而会降低性能. 1.1.2. 多线程 随着硬件性能的提升,CPU的核数越来越越多,很多服务器标配已经达到32或64核.通过多线程并发编程,可以充分利用多核CPU的处理能力,提升系统的处理效率和并发性能.  

Java线程

一.创建线程的两种方式 1. 继承Thread类 类 1) 定义子类继承Thread类. 2) 子类中重写Thread类中的run方法. 3) 创建Thread子类对象,即创建了线程对象. 4) 调用线程对象start方法:启动线程,调用run方法. 2. 实现Runnable 接口 1)定义子类,实现Runnable接口. 2)子类中重写Runnable接口中的run方法. 3)通过Thread类含参构造器创建线程对象. 4)将Runnable接口的子类对象作为实际参数传递给Thread类的构

Linux内核线程之深入浅出【转】

转自:http://blog.csdn.net/yiyeguzhou100/article/details/53126626 [-] 线程和进程的差别 线程的分类 1     内核线程 2     轻量级进程 3     用户线程 初识内核线程 1     内核线程 2     用户进程 内核线程与用户进程的关系 内核线程的创建 如何在驱动中使用内核线程 通用的内核线程模块 1     内核线程相关API 2     kthreadh 3     kthreadc 根据操作系统内核是否对线程可感

Microsoft的 ASP 组件指南

microsoft 作者:J.D. MeierMicrosoft Corporation2000 年 1 月 24 日 简介 组件.有人喜欢它们,有人则害怕.害怕组件的人通常都能给您讲一个骇人的经历.让我们面对它:当开始在 ASP 下使用组件时,并不知道什么能伤害您.如果您摔倒了,那么站起来,自己拍干净,然后接着来.在这篇文章中,我将提供从实践中获得的一般指南,帮助您建立更好的基于组件的 ASP 解决方案. 为什么使用组件? 在我开始讨论组件指南之前,值得考虑将组件添加到 ASP 应用程序的价值

twitter storm源码走读(三)

worker进程中线程的分类及用途 本文重点分析storm的worker进程在正常启动之后有哪些类型的线程,针对每种类型的线程,剖析其用途及消息的接收与发送流程. 概述 worker进程启动过程中最重要的两个函数是mk-worker和worker-data,代码就不一一列出了.worker顺利启动之后会拥有如下图所示的各类线程.   接收和发送线程 worker在启动的时候会生成进程级别的消息接收和消息发送线程,它们视具体配置而定,可以是基于zmq,也可以基于netty,这个没有太多好说的.so

[转载]Linux 线程实现机制分析

  自从多线程编程的概念出现在 Linux 中以来,Linux 多线应用的发展总是与两个问题脱不开干系:兼容性.效率.本文从线程模型入手,通过分析目前 Linux 平台上最流行的 LinuxThreads 线程库的实现及其不足,描述了 Linux 社区是如何看待和解决兼容性和效率这两个问题的.   一.基础知识:线程和进程 按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位.在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开

进程、线程知识点总结和同步(消费者生产者,读者写者三类问题)、互斥、异步、并发、并行、死锁、活锁的总结

进程和程序: 进程:是个动态的概念,指的是一个静态的程序对某个数据集的一次运行活动,而程序是静态的概念,是由代码和数据组成的程序块而已. 进程5大特点:动态性,并发性,独立运行性,异步性,和结构化的特性. 在多道程序环境下,程序不能独立运行,操作系统所有的特征都是基于进程而体现的,只有进程可以在系统中运行,程序运行必须有进程才行.进程是操作系统里资源分配的基本单位,也是独立运行的基本单位,具有动态的特点,暂时出现的特点,而且一个进程产生之后,可以再次生成多个进程出来.也可以多个进程并发执行,也可

UWP-MSDN文档分类

原文:UWP-MSDN文档分类 UWP学习目录整理   0x00 可以忽略的废话 10月6号靠着半听半猜和文字直播的补充看完了微软的秋季新品发布会,信仰充值成功,对UWP的开发十分感兴趣,打算后面找时间学习一下.谁想到学习的欲望越来越强烈,干脆把UWP学习提上了日程,马上开始.之前有过2年WPF开发经验,过渡到UWP应该不会特别困难.第一步就是找点学习教程了,找了一圈发现还是MSDN比较靠谱.https://msdn.microsoft.com/en-us/library/windows/app