java中的多线程:线程使用,人生转折!

本文深入探讨了Java中的多线程概念,包括Thread、Runnable接口的使用,ThreadFactory创建线程,Executor线程池的运用,以及Callable和Future获取异步结果。此外,还详细阐述了线程安全、线程同步的概念,如synchronized、volatile、Lock/ReentrantReadWriteLock的使用,最后介绍了线程间的通信机制,如等待/通知和join方法。
摘要由CSDN通过智能技术生成

Thread:


Thread thread = new Thread() {

@Override

public void run() {

System.out.println(“Thread started!”);

}

};

thread.start();

复制代码

Thread类的几个常用的方法:

  • sleep():静态方法,使当前线程睡眠一段时间;

  • currentThread():静态方法,返回对当前正在执行的线程对象的引用;

  • start():开始执行线程的方法,java虚拟机会调用线程内的run()方法;

  • join():使当前线程等待另一个线程执行完毕之后再继续执行,内部调用的是Object类的wait方法实现的;

  • yield():yield意为放弃,yield()方法指当前线程愿意让出对当前处理器的占用。需要注意,即时当前线程调用了yield()方法让出处理机,调度时也有可能继续让该线程竞争获得处理机并运行;

Runnable:


Runnable是一个函数式接口:

@FunctionalInterface

public interface Runnable {

public abstract void run();

}

复制代码

Runnable不利于线程重用管理

Runnable runnable = new Runnable() {

@Override

public void run() {

System.out.println(“Thread with Runnable started!”);

}

};

Thread thread = new Thread(runnable);

thread.start();

复制代码

ThreadFactory:


ThreadFactory factory = new ThreadFactory() {

int count = 0;

@Override

public Thread newThread(Runnable r) {

count ++;

return new Thread(r, “Thread-” + count);

}

};

Runnable runnable = new Runnable() {

@Override

public void run() {

System.out.println(Thread.currentThread().getName() + “started!”);

}

};

Thread thread = factory.newThread(runnable);

thread.start();

Thread thread1 = factory.newThread(runnable);

thread1.start();

复制代码

Executor线程池:


Executor线程池(最为推荐):</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值