学习笔记_毕向东 Java_多线程 2014.7.16

1、多线程

代码:MyThread.java

class Thread_dd extends Thread
{
	private String name;
	Thread_dd(String name)
	{
		this.name = name;
	}
	public void run()
	{
		int y;
		for(y = 0; y < 5; y++)
			System.out.println(name + "thread--" + y);
	}
}

class MyThread
{
	public static void main(String[] args) 
	{
		Thread_dd t = new Thread_dd("One");
		t.start();  //开启线程并执行该线程的run方法     (面试经常考这两个运行得啥子)
		//t.run();  //仅仅是对象调用方法。而线程创建了,并没有运行

		for(int x = 0; x < 5; x++)
			System.out.println("Hello World----" + x);

		Thread_dd t1 = new Thread_dd("Two");
		t1.start();
	}
}

代码:MyTicket.java

/*
简单卖票程序
*/

class Ticket implements Runnable
{
	private int ticket = 10;
	public void run()
	{
		
		for(; ticket > 0; ticket--)   //为什么用for循环,每个线程都会去取一次10呢?难道ticket--是在输出语句之后执行的?
			System.out.println(Thread.currentThread().getName() + "...sale:" + ticket);	//Tread.可以不要
		/*
		while(true)
		{
			if(ticket > 0)
			{
				System.out.println(Thread.currentThread().getName() + "...saled" + ticket--);
			}
		}*/
	}
}

class MyTicket 
{
	public static void main(String[] args) 
	{
		Ticket t = new Ticket();

		new Thread(t).start();  //Thread-0
		
		Thread t2 = new Thread(t);
		Thread t3 = new Thread(t);
		Thread t4 = new Thread(t);
		Thread t5 = new Thread(t);
		t2.start();
		t3.start();
		t4.start();
		t5.start();
	}
}
		synchronized(obj)
		{
			for(; ticket > 0; ticket--)   //为什么用for循环,每个线程都会去取一次10呢?难道ticket--是在输出语句之后执行的?
				System.out.println(Thread.currentThread().getName() + "...sale:" + ticket);	
		}
		//同步代码块解决了for循环的问题。




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值