java37java中的线程(二)

线程的第二种控制方法

定义一个类实现Runnable 接口,在接口中复写run()方法,生成一个Thread对象,将Runnable对象作为参数传入Thread对象。

class RunnableImp  implements Runnable{
    public void run(){
        for(int i = 0;i < 100;i++){
            System.out.println("Runnable" + "--" + i);
            try{
            if(i == 50){
                Thread.sleep(50);
            }
            }
            catch(Exception e){
                System.out.println(e);
            }
        }
    }
}
class Test{
    public static void main(String[] args){
        //生成一个Runnable类接口实现的对象
        RunnableImp ri = new RunnableImp();
        //生成一个Thread对象,并将Runnable接口实现类的对象作为参数。
        //传递给Thread
        Thread t = new Thread(ri);
        t.setPriority(Thread.MAX_PRIORITY);
        System.out.println(t.getPriority());
        t.start();
    }
}

线程的简单控制方法

Thread.sleep():括号内为休眠时间单位毫秒。休眠结束后进入预启动状态等待cpu。

Thread.yield():当前线程让出cpu,重新争夺cpu

设置线程的优先级

对象.setPriority()
线程的优先级最大是10最小是1。可以使用Thread的常量来设置。
getPriority:取得线程优先级。

线程实例

import java.util.*;
public class TestThread {
    public static void main(String[] args) {
        MyThread m = new MyThread();
        Thread n = new Thread(m);
        n.start();
        try {
        Thread.sleep(10000);
        }
        catch(InterruptedException e ) {
            e.printStackTrace();
        }
        m.setFlag();
    }
}

class MyThread implements Runnable {
    private boolean flag = true;
     public void run () {
         try {
             while(flag) {
                 //除非继承Thread不然不可以直接调用sleep方法,需要Thread.sleep()方法。
                 Thread.sleep(1000);
                 System.out.println("---" + new Date() + "---");
             }
         }
         catch(InterruptedException e) {
             e.printStackTrace();
         }
     }
     //设置类中的私有变量必须要用setXXX方法。
     void setFlag() {
         this.flag = false;
     }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值