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本身是一个主线程
    }
    }



  • 相关阅读:
    [f]动态判断js加载完成
    [f]添加css3动画的方法
    Meta标签以及viewport
    数据结构与算法-单向链表
    Denormalization 2
    Normalization
    Denormalization
    C# 通过反射获取扩展方法
    从ord()中对Unicode编码的理解
    python访问MS SqlServer(通过pyodbc)
  • 原文地址:https://www.cnblogs.com/zhouchangyang/p/10589601.html
Copyright © 2011-2022 走看看