用stream流创建一个线程并且加锁
时间: 2024-04-21 16:04:45 浏览: 125
可以使用Java中的`java.util.concurrent.locks`包中的`ReentrantLock`类来实现加锁。具体实现如下:
```java
import java.util.concurrent.locks.ReentrantLock;
import java.util.stream.Stream;
public class Main {
private static final ReentrantLock lock = new ReentrantLock();
public static void main(String[] args) {
Stream.of("A", "B", "C", "D", "E")
.forEach(s -> new Thread(() -> {
lock.lock();
try {
System.out.println("Thread " + s + " is running");
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
lock.unlock();
}
}).start());
}
}
```
在上面的代码中,我们使用`Stream`创建了五个线程。每个线程都会获取`lock`对象的锁,并在获取到锁之后打印一条信息并睡眠1秒钟,模拟线程运行的过程。在执行完毕之后,线程会释放锁。这样做可以保证线程之间的互斥性,避免了多个线程同时访问共享资源的情况。
阅读全文