Java 多线程加锁demo
时间: 2023-03-24 10:04:30 浏览: 83
以下是一个 Java 多线程加锁的示例代码:
```
public class Counter {
private int count = ;
private Object lock = new Object();
public void increment() {
synchronized (lock) {
count++;
}
}
public int getCount() {
synchronized (lock) {
return count;
}
}
}
```
在这个示例中,我们使用了一个对象锁来保证多个线程对 count 变量的访问是同步的。在 increment 和 getCount 方法中,我们都使用了 synchronized 关键字来获取 lock 对象的锁,这样就可以保证同一时刻只有一个线程能够访问 count 变量。
相关问题
java 多线程 加锁
回答: 在Java中,使用synchronized关键字可以对多线程进行加锁操作。当synchronized关键字加在非静态方法上时,相当于针对当前对象加锁。如果这两个方法属于同一个实例,线程1能够获取到锁并执行方法,线程2会阻塞等待,直到线程1执行完毕释放锁,线程2获取到锁之后才能执行方法内容。如果这两个方法属于不同实例,两者能并发执行,互不干扰。
java多线程并行demo
以下是一个Java多线程并发执行的demo代码实例:
```java
public class MultiThreadDemo {
public static void main(String[] args) {
MyThread mt1 = new MyThread("Thread 1");
MyThread mt2 = new MyThread("Thread 2");
mt1.start();
mt2.start();
}
}
class MyThread extends Thread {
private String name;
public MyThread(String name) {
this.name = name;
}
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(name + " is running...");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
```
这个demo创建了两个线程,每个线程都会输出自己的名字并休眠1秒钟,然后再次输出自己的名字,如此循环5次。由于两个线程是并发执行的,因此输出的结果是交替出现的。