以下是一些建议以及代码示例,用于并发的JAVA编程:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建一个包含固定线程数的线程池
ExecutorService executor = Executors.newFixedThreadPool(5);
for (int i = 0; i < 10; i++) {
final int taskNum = i;
executor.execute(new Runnable() {
public void run() {
System.out.println("正在执行任务:" + taskNum);
}
});
}
// 关闭线程池
executor.shutdown();
}
}
public class SynchronizedExample {
private int count = 0;
public synchronized void increment() {
count++;
}
public static void main(String[] args) throws InterruptedException {
final SynchronizedExample example = new SynchronizedExample();
// 创建多个线程并发执行increment方法
Thread t1 = new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 1000; i++) {
example.increment();
}
}
});
Thread t2 = new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 1000; i++) {
example.increment();
}
}
});
t1.start();
t2.start();
t1.join();
t2.join();
System.out.println("count:" + example.count);
}
}
public class VolatileExample {
private volatile boolean flag = false;
public void setFlag(boolean flag) {
this.flag = flag;
}
public void print() {
while (!flag) {
// do something
}
System.out.println("flag为true");
}
public static void main(String[] args) throws InterruptedException {
final VolatileExample example = new VolatileExample();
Thread t1 = new Thread(new Runnable() {
public void run() {
example.print();
}
});
Thread t2 = new Thread(new Runnable() {
public void run() {
example.setFlag(true);
}
});
t1.start();
Thread.sleep(1000); // 确保t1先执行
t2.start();
t1.join();
t2.join();
}
}
这些是一些常用的并发编程建议以及相应的代码示例,希望能对你有所帮助。请注意,在实际编程中,还需要根据具体情况选择适合的并发编程技术和工具。
上一篇:并发的http请求