一个包学习线程的使用

进程与线程

正在运行的程序称之为进程。进程它是系统分配资源的基本单位。

线程,又称轻量级进程(Light Weight Process)。
线程是进程中的一条执行路径,也是CPU的基本调度单位。
若一个程序可同一时间执行多个线程,就是支持多线程的.
一个进程由一个或多个线程组成,彼此间完成不同的工作(任务),
同时执行,称为多线程。

充分利用了cpu,提高了程序的效率。

实现线程的三种方式中,自己的runnable和callable类均需要实现相应的接口,继承thread类方式是用的继承,相对较局限,因为一个类只能继承一个父类但可以实现多个接口。

主函数

/*线程试验步骤*/

/*1.创建一个线程对象*/
/*2.调用start()方法启动线程*/
/*3.调用run()方法*/
/*4.使用join()方法等待线程结束*/
/*5.使用yield()方法让出cpu资源*/
/*6.使用sleep()方法让出cpu资源*/
/*7.使用setPriority()方法设置线程优先级*/
/*8.使用setDaemon()方法设置守护线程*/
/*9.使用interrupt()方法中断线程*/
/*10.使用isAlive()方法判断线程是否存活*/
/*11.使用isInterrupted()方法判断线程是否被中断*/
/*12.使用currentThread()方法获取当前线程*/
/*13.使用getId()方法获取线程id*/
/*14.使用getName()方法获取线程名称*/
/*15.使用setName()方法设置线程名称*/
/*16.使用getPriority()方法获取线程优先级*/
/*17.使用getState()方法获取线程状态*/
/*18.使用getThreadGroup()方法获取线程组*/
/*19.使用getStackTrace()方法获取线程堆栈*/
/*20.使用setDaemon()方法设置守护线程*/
/*21.使用setUncaughtExceptionHandler()方法设置异常处理器*/
/*22.使用getUncaughtExceptionHandler()方法获取异常处理器*/
/*23.使用setContextClassLoader()方法设置上下文类加载器*/
/*24.使用getContextClassLoader()方法获取上下文类加载器*/
/*25.使用setDefaultUncaughtExceptionHandler()方法设置默认异常处理器*/

/*Callable线程需要利用FutureTask创建线程任务*/
MyCallable my=new MyCallable();
FutureTask futureTask=new FutureTask(my);
Thread t=new Thread(futureTask);
t.start();
Object o=futureTask.get();
System.out.println(o);

MyThread myThread=new MyThread();
myThread.start();

MyRunnable myRunnable=new MyRunnable();
Thread t1=new Thread(myRunnable);
t1.start();
t1.setName("myRunnableNew");
System.out.println("newRunnable: "+t1.getName());
t1.run();
//runnable与Callable的区别
//runnable没有返回值,callable有返回值
//runnable没有抛出异常,callable可以抛出异常
//runnable没有返回值类型,callable有返回值类型
//runnable没有泛型,callable有泛型

MyCallable.java

public class MyCallable implements Callable {
    @Override
    public Object call() throws Exception {
        /*1000以内3的倍数的和*/
        int sum = 0;
        int i=3;
        while (i<1000){
            sum+=i;
            i+=3;
        }
        return sum;
    }
}

MyRunnable.java

public class MyRunnable implements Runnable{
    @Override
    public void run() {
        System.out.println("Thread name: RunnableThread:" + Thread.currentThread().getName());
    }
}

MyThread.java

public class MyThread extends Thread
{
    public void run()
    {
        System.out.println("MyThread");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值