ex_11_3_2.java

来自「JAVA程序设计与实践.rar」· Java 代码 · 共 48 行

JAVA
48
字号
/*
 *文件名:ex_11_3_2.java
 *说  明:对象锁定
 */
public class ex_11_3_2 implements Runnable
{
	//x是共享的变量
	public int x;
	public static void main(String[] args)
	{
		ex_21_5 test = new ex_21_5();
		//用一个BadSharing类的实例来创建两个线程
		Thread t1 = new Thread(test);
		Thread t2 = new Thread(test);
		//将这两个线程由新建状态变成可运行状态
		t1.start();
		t2.start();

	}
	//线程的执行代码
	public void run()
	{
		//临时变量temp可以看作是寄存器
		int temp;
		while(true)
		{
			//使用synchronized关键字加锁
			synchronized(this)
			{
				temp = x+1;
				//睡眠线程以使另一个线程可以运行。
				try
				{
					Thread.sleep(1000);

				}
				catch(InterruptedException e)
				{

				}
			
				x = temp;
				//打印出当前线程中的x的值
				System.out.println("线程"+Thread.currentThread().getName()+"中的x值为"+x);
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?