并发编程:Java多线程示例与问题
并发编程是指在一个程序中同时执行多个任务,以提高系统的整体效率。在Java中,多线程可以通过Thread类和Runnable接口实现。
以下是一个简单的Java多线程示例:
// 创建线程对象
Thread thread1 = new Thread(new Runnable() {
// 实现Runnable接口的run方法
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("线程1: " + i);
try {
Thread.sleep(100); // 暂停,模拟耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}));
// 创建第二个线程对象
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 5; i < 10; i++) {
System.out.println("线程2: " + i);
try {
Thread.sleep(100); // 暂停,模拟耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}));
// 启动线程
thread1.start();
thread2.start();
在这个示例中,我们创建了两个线程(thread1和thread2),它们分别执行一个循环任务。通过Thread.start()
启动线程。
问题可能包括:
并发控制:如何避免多个线程同时访问共享资源导致的问题?
死锁:如果两个或更多的线程相互等待对方释放资源,就会发生死锁。
线程同步与互斥:如何使用synchronized关键字或Lock接口实现线程间的同步和互斥?
时间消耗问题:某些耗时任务可能会影响主线程的执行速度。
还没有评论,来说两句吧...