java线程的时间分配问题

来源:百度知道 编辑:UC知道 时间:2024/06/26 03:12:52
class TicketsSystem
{
public static void main(String[] args)
{
SellThread st=new SellThread();
new Thread(st).start();
new Thread(st).start();
.
.
.
我想请教下new Thread(st).start()这俩个线程所分配的时间是不是一样的?(同一个类所继承的线程对象,并且么是同等优先级)
我试过了,结果是cxzucc一样,他不是相同的.
希望继续回答我这个补充,如果回答好,加送至少20分.
我在俩个对象上分别加了synchronized方法,结果他们就很有次序的运行了,连线程的对象也是1 2 3 4这个次序,就是(1=a 2=b 3=c 4=d)以前是(1=a 1=a 1=a 3=c 4=d 4=d)这我感觉很奇怪能解释下吗?

只能说他们获得CPU的时间片的概率是相同的,也就是CPU执行这两个线程的概率是相同的.但具体CPU是运行哪个线程这点是不确定的,随机的.

分配的时间是一样的,只要你不加时间限制就是一样的,cpu有个时间片,把一段时间平均分成n份给n个进程,你可以这样测试一下,第一个线程输出a,第二个线程输出b,看看a和b的个数是否相等