【常用API】之Thread多线程
多线程(MultiThreading):
通过代码,在一个主进程中,创建更多的线程。
这些线程同时运行,多线程程序。
一个主进程运行的时候,产生了不止一个线程操作。
并行:
多个CPU实例或者多台电脑同时执行一段逻辑处理,【同时】。
并发:
通过CPU调度算法,让用户开上去同时执行,
实际上从CPU操作层面不是真正的同时。【CPU不是同时】
并发往往是在一个程序中,有公用的资源,那么针对这个公用的资源
就会产生拼抢,
我们会利用 TPS或者QPS 来反应这个系统的处理能力。
多线程实例:
1 package com.xzm.线程; 2 3 //应用程序的一组命令单元 4 public class _02_Thread多线程 { 5 6 //主函数: 7 // 程序运行会得到一个进程,主函数就是系统默认的那个主线程 8 public static void main(String[] args) { 9 10 //第一步:实例化得到多个独立的线程对象 11 // 利用多态实现,也可以独立创建类对象 12 Thread t1 = new Thread_01(); 13 Thread t2 = new Thread_02(); 14 Thread t3 = new Thread_03(); 15 16 //第二步:调度运行 17 //调用父类中的start方法,独立运行线程 18 //这时,三个线程会同时运行 19 //start会自动开辟独立运行的操作,同时调用run方法 20 t1.start(); 21 t2.start(); 22 t3.start(); 23 24 25 26 } 27 28 } 29 30 //=============================================== 31 //Thread单线程实现: 32 //1、定义线程类,继承 Thread父类 33 //2、重写 void run() 方法 34 //3、主线程创建子线程对象 35 //4、主线程开启子线程 调用start()方法 36 37 // 【继承于线程类,当前类也是线程】 38 39 //线程一 40 class Thread_01 extends Thread{ 41 @Override 42 public void run() { 43 for(int i=1; i<=5; i++) { 44 System.out.println("t1->"+i); 45 } 46 } 47 } 48 49 //线程二 50 class Thread_02 extends Thread{ 51 @Override 52 public void run() { 53 for(int i=1; i<=5; i++) { 54 System.out.println("t2-->"+i); 55 } 56 } 57 } 58 59 //线程三 60 class Thread_03 extends Thread{ 61 @Override 62 public void run() { 63 for(int i=1; i<=5; i++) { 64 System.out.println("t3--->"+i); 65 } 66 } 67 }
唯一可以不劳而获的是贫穷,而唯一可以无中生有的是梦想。