黑马程序员_多线程_1

来源:互联网 发布:数学建模数据收集 编辑:程序博客网 时间:2024/05/18 00:27

——- android培训、java培训、期待与您交流! ———-

进程:一个正在执行的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径或者控制单元

线程:进程中一个独立的控制单元,线程控制着进程的执行

一个进程至少有一个线程

两种创建线程的方式:
一、
1、定义类,集成Thread
2、复写run方法,将自定义代码存储在run方法中,让线程运行
3、调用线程的start方法,该方法两个作用:启动线程,调用run方法

二、
1、定义类实现Runnable接口
2、覆盖Runnable接口中的run方法,将线程要运行的代码存放在该run方法中
3、通过Thread类建立线程对象
4、将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数
5、调用Thread类的start方法开启线程并调用Runnable接口子类的run方法
—————————————————————
实际操作:

//第一种方法
class PrimeThread extends Thread {
long minPrime;
PrimeThread(long minPrime) {
this.minPrime = minPrime;
}

     public void run() {         // compute primes larger than minPrime          . . .     } }

//创建并启动一个线程
PrimeThread p = new PrimeThread(143);
p.start();

//第二种方法
class PrimeRun implements Runnable {
long minPrime;
PrimeRun(long minPrime) {
this.minPrime = minPrime;
}

     public void run() {         // compute primes larger than minPrime          . . .     } }//创建并启动线程  PrimeRun p = new PrimeRun(143); new Thread(p).start();

随文附上一份两种方式创建线程的实例代码

//继承类的方式

public class ThreadDemo extends Thread {    //apple初始数量20个    private static int appleNum = 20;    //小孩名,便于打印时候区分    private String childName;    ThreadDemo(String name){        this.childName = name;    }    public void run(){        //两个小孩分别初始食用数量0        int childEat = 0;        while(true){            //开始吃,每次吃一个,appleNum最低不能为0            if(appleNum>0){                childEat++;                appleNum--;                System.out.println(childName+"吃了:"+childEat+"个;还剩:"+appleNum);            }           }    }}

//实现接口的方式

class ThreadDemo_2 implements Runnable {    //apple初始数量20个        private static int appleNum = 20;        //小孩名,便于打印时候区分        private String childName;        ThreadDemo_2(String name){            this.childName = name;        }        public void run(){            //两个小孩分别初始食用数量0            int childEat = 0;            while(true){                //开始吃,每次吃一个,appleNum最低不能为0                if(appleNum>0){                    childEat++;                    appleNum--;                    System.out.println(childName+"吃了:"+childEat+"个;还剩:"+appleNum);                }               }        }}
0 0
原创粉丝点击