JAVA中来实现并发访问方式 二

实现Runnable接口
其实在第一种方法中:Thread也是实现了Runnable接口
public class Thread
extends Object
implements Runnable

线程是程序中执行的线程。 Java虚拟机允许应用程序同时执行多个执行线程。

  每个线程都有优先权。 具有较高优先级的线程优先于优先级较低的线程执行。 每个线程可能也可能不会被标记为守护程序。 当在某个线程中运行的代码创建一个新的Thread对象时,新线程的优先级最初设置为等于创建线程的优先级,并且当且仅当创建线程是守护进程时才是守护线程。

线程1:

public class Test implements Runnable{

	@Override
	public void run() {
		//优先级:设定优先级,必须在RUN()方法的开头设置。或者生成启动前设置
		Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
		for(int i=0;i<10;i++)
		{
			System.out.println(Thread.currentThread()+":"+i);
		}
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
}

线程2:

public class Test1 implements Runnable {

	@Override
	public void run() {
		for(int i=0;i<10;i++)
		{
			System.out.println(Thread.currentThread()+":"+i);
		}	
	}
}

线程3:main方法在此只调用线程1,2;

public static void main(String[] args) {
		System.out.println(Thread.currentThread().getName());
		new Thread(new Test()).start();
		new Thread(new Test1()).start();
		}
结果:

方法详解:

Thread.sleep(100):函数在未来的1000毫秒内我不想再参与到CPU竞争。那么1000毫秒过去之后,这时候也许另外一个线程正在使用CPU,那么这时候操作系统是不会重新分配CPU的,直到那个线程挂起或结束;况且,即使这个时候恰巧轮到操作系统进行CPU 分配,那么当前线程也不一定就是总优先级最高的那个,CPU还是可能被其他线程抢占去。

加断点线程中,逐步执行不能实现多线程,因为断点干预线程抢执行资源。

线程优先级:线程的最低优先级=1;线程的默认优先级=5;线程的最高优先级=10;

                 :线程的级别决定那个线程先被执行,但是也不一定因为存在sleep()函数;











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值