Java线程学习1----创建线程的方法

线程的概念

https://baike.baidu.com/item/线程/103101?fr=aladdin

线程是程序中一个单一的顺序控制流程。进程内有一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指令运行时的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。

 

创建线程

创建进程主要有三种方法,一继承Thread类,二实现Runnable接口,三是实现Callable接口。

实现Callable接口和前两种方式不同的地方在于可以传递参数,不过线程实现的复杂程度相对较高。

方法一

继承Thread类

public class ThreadThread extends  Thread{
    @Override
    public void run() {
        super.run();
        System.out.println("----------" + Thread.currentThread().getName() + "----------");
    }
}

实例化运行方法:

ThreadThread threadThread = new ThreadThread();
threadThread.start();

方法二:

实现Runnable接口

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

实例化运行方法:

RunnableThread runnableThread = new RunnableThread();
Thread thread = new Thread(runnableThread);
thread.start();

方法三:

实现Callable接口

public class CallableThread implements Callable<String> {
    private long waitTime;

    public CallableThread(int waitTime) {
        this.waitTime = waitTime;
    }

    @Override
    public String call() throws InterruptedException {
        System.out.println("----------"+Thread.currentThread().getName()+"----------");
        return Thread.currentThread().getName();
    }
}

实例化运行方法:

//单个callable对象调用
CallableThread callableThread = new CallableThread(100);
ExecutorService singleThreadPool = Executors.newSingleThreadExecutor();
Future<String> future = singleThreadPool.submit(callableThread);

//多个callable对象调用
CallableThread callableThread1 = new CallableThread(100);
CallableThread callableThread2 = new CallableThread(100);
FutureTask<String> futureTask1 = new FutureTask<>(callableThread1);
FutureTask<String> futureTask2 = new FutureTask<>(callableThread2);
ExecutorService mutipleThreadPool = Executors.newFixedThreadPool(2);
mutipleThreadPool.execute(futureTask1);
mutipleThreadPool.execute(futureTask2);

//线程执行完会自动回收,但是线程池一定要手动关闭
singleThreadPool.shutdown();
mutipleThreadPool.shutdown();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值