上一篇
java并发编程的入门过程是什么
- 行业动态
- 2023-12-25
- 2
Java并发编程的入门过程
并发编程是计算机科学中的一个热门话题,它涉及到多个线程同时执行的问题,在Java中,我们可以使用多线程来实现并发编程,本文将介绍Java并发编程的入门过程,包括线程的创建、同步与互斥、线程池等内容。
线程的创建
1、1 继承Thread类
要创建一个新的线程,可以通过继承Thread类并重写其run()方法来实现。
class MyThread extends Thread { @Override public void run() { // 在这里编写线程要执行的任务 } }
1、2 实现Runnable接口
另一种创建线程的方法是实现Runnable接口,并将其作为参数传递给Thread类的构造函数。
class MyRunnable implements Runnable { @Override public void run() { // 在这里编写线程要执行的任务 } } public class Main { public static void main(String[] args) { MyRunnable myRunnable = new MyRunnable(); Thread thread = new Thread(myRunnable); thread.start(); } }
同步与互斥
2、1 synchronized关键字
synchronized关键字可以用于修饰方法或者代码块,表示同一时刻只能有一个线程访问被修饰的方法或代码块。
public class Counter { private int count = 0; public synchronized void increment() { count++; } }
或者:
public class Counter { private int count = 0; public void increment() { synchronized (this) { count++; } } }
2、2 ReentrantLock类(可重入锁)
ReentrantLock是一个可重入的互斥锁,它提供了与synchronized类似的功能,但更加灵活。
import java.util.concurrent.locks.ReentrantLock; public class CounterWithLock { private int count = 0; private ReentrantLock lock = new ReentrantLock(); public void increment() { lock.lock(); try { count++; } finally { lock.unlock(); } } }
线程池
3、1 ThreadPoolExecutor类(线程池)
ThreadPoolExecutor是一个线程池实现,它可以自动管理线程的创建和销毁。
import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicInteger; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; @Configuration // Spring框架配置类,需要引入spring-context依赖包(如:spring-boot-starter-web)才能使用@Component注解进行标注,如果不是Spring框架项目,则无需添加@Configuration注解,其他部分代码保持不变。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/356924.html