线程: 是程序执行流的最小单元, 包括就绪, 阻塞和运行三种基本状态.
1. 继承 Thread 类, 然后调用 start 方法.
- package com.oracle.demo01;
- public class MyThread extends Thread{
- public void run(){
- // 线程
- System.out.println("线程名"+getName());
- for(int i=0;i<20;i++){
- System.out.println("MyThread-"+i);
- }
- }
- }
- package com.oracle.demo01;
- import java.util.concurrent.ThreadPoolExecutor;
- public class demo01 {
- public static void main(String[] args) {
- Thread th=Thread.currentThread();
- System.out.println(th.getName());
- //// 获取当前线程对象的名称
- // ?Thread.currentThread().getName();
- // 创建新线程 *(放在上面)
- MyThread mythread=new MyThread();
- // 开启线程,
- mythread.start();
- for(int i=0;i<20;i++){
- System.out.println("main-"+i);
- }
- }
- }
2. 实现 Runnable 接口的 run 方法, 然后再用 Thread 类包裹后, 调用 start 方法.
- package com.oracle.demo02;
- public class MyRunnable implements Runnable {
- @Override
- public void run() {
- for(int i=0;i<20;i++){
- System.out.println("thread-0"+i);
- }
- }
- }
- package com.oracle.demo02;
- public class demo01 {
- public static void main(String[] args) {
- // 创建线程任务对象
- MyRunnable mr=new MyRunnable();
- // 创建 thread 对象
- Thread th=new Thread(mr);
- th.start();
- for(int i=0;i<20;i++){
- System.out.println("main-"+i);
- }
- }
3. 线程池
- package com.oracle.demo03;
- public class MyRun implements Runnable{
- public void run(){
- String name=Thread.currentThread().getName();
- for(int i=0;i<20;i++){
- System.out.println(name+i);
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
- package com.oracle.demo01;
- public class MyThread extends Thread{
- public void run(){
- // 线程
- System.out.println("线程名"+getName());
- for(int i=0;i<20;i++){
- System.out.println("MyThread-"+i);
- }
- }
- }
- public class demo02 {
- public static void main(String[] args) {
- // 用线程池的方法完成线程任务
- // 从线程池工厂中获取线程池对象
- ExecutorService es=Executors.newFixedThreadPool(2);
- // 创建线程任务对象
- MyRun mr=new MyRun();
- // 让线程池自主选择一条线程执行线程任务
- es.submit(mr);
- es.submit(mr);
- es.submit(mr);
- // 关闭线程池
- es.shutdown();
- }
- }
来源: http://www.bubuko.com/infodetail-3106320.html