zoukankan      html  css  js  c++  java
  • Java_多线程

    线程(Thread)

    1.线程是CPU进行资源调度的最小单位

    2.线程是进程实际运行的单位,处理进程中无数的小任务

    3.线程共享代码和数据空间

    4.一个进程可以并发多个线程,线程之间切换系统开销很小

    5.在一个进程中至少有一个主线程

    6.除了主线程之外,都可以被叫做子线程

    7.子线程之间如果没有限制,所有子线程都是并行

    8.线程之间如果没有资源冲突,就各自执行,互不相关。

     线程的创建:继承形式

    新建线程类,继承于线程Thread:

    package com.lan;
    public class MyThread extends Thread {
        @Override      //重写父类Thread的run方法
    public void run() {
    //在重写的run方法中,写要在线程中执行的代码
    System.out.println("当前线程是:"+Thread.currentThread().getName());
    for (int i = 0; i <10 ; i++) {
    System.out.println("thread1-"+i);
    try {
    Thread.sleep(200); //延时200ms
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    }
    package com.lan;
    public class MainClass {
    public static void main(String[] args) {
            MyThread myThread = new MyThread();
    myThread.setName("thread1:");
    myThread.start(); //启动线程
    }
    }

    线程创建:接口形式
    新建任务类,实现线程接口:Runnable
    package com.lan;
    public class MyTask implements Runnable{
    @Override
    public void run() {
    System.out.println("当前线程是"+Thread.currentThread().getName());
    for (int i = 0; i <10 ; i++) {
    System.out.println(Thread.currentThread().getName()+i);
    try {
    Thread.sleep(200);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    }
    package com.lan;
    public class MainClass {
    public static void main(String[] args) {
           Thread t2 =new Thread(new MyTask(),"t2:");   //创建线程类对象T2
    t2.start(); //启动线程
    System.out.println("当前线程是:"+Thread.currentThread().getName()); //获取当前main线程,main本身是一个主线程
    }
    }



  • 相关阅读:
    JvisualVM、JMC监控远程服务器
    MVC学习笔记3
    MVC学习笔记2
    菜鸟级appium 必看
    关于redis一些问题记录
    git和github的区别
    VMware快照
    LR创建数据源读取excel
    mysql 5.7.18 源码安装笔记
    IDEA 配置Junit4
  • 原文地址:https://www.cnblogs.com/zhouchangyang/p/10589601.html
Copyright © 2011-2022 走看看