多线程(二)

线程优先级:

       线程虽然有优先级,但是并不能保证一定先执行,只是为优先执行提供可能。

       优先级范围 :1—10   数字越大,优先级越高。

public class Demo extends Thread{

		@Override
		public void run() {
			// TODO Auto-generated method stub
			System.out.println(Thread.currentThread().getName()+"在执行!");
		}
	public static void main(String[] args) {
		Demo d1 = new Demo();
		d1.setName("线程一");
//		d1.setPriority(10);
//		d1.setPriority(MAX_PRIORITY);
		d1.start();
		
		Demo d2 = new Demo();
		d2.setName("线程二");
//		d2.setPriority(MIN_PRIORITY);
		d2.start();
		
		Demo d3 = new Demo();
		d3.setName("线程三");
		d3.start();
		
		System.out.println(Thread.currentThread().getName()+"在执行!=========");
	}
}

public class MyRunnable1 implements Runnable {

	@Override
	public void run() {
		// TODO Auto-generated method stub
		for (int i = 0; i < 500; i++) {
			System.out.println((i+1)+":1===线程");
		}
	}

}

package d87_thread_1;

public class MyRunnable2 implements Runnable {

	@Override
	public void run() {
		// TODO Auto-generated method stub
		for (int i = 0; i < 500; i++) {
			System.out.println((i+1)+":第二个线程在执行");
		}
	}

}

package d87_thread_1;

public class MyRunTest {
	public static void main(String[] args) {
		MyRunnable1 my1 = new MyRunnable1();
		MyRunnable2 my2 = new MyRunnable2();
		
		Thread t1 = new Thread(my1);
		Thread t2 = new Thread(my2);
		
//		t1.setPriority(Thread.MAX_PRIORITY);;
		
		t1.start();
		t2.start();
	}
}

线程休眠----------------------------------------------------------------

package Test_Thread;

public class Thread1 implements Runnable{

    @Override
    public void run() {
        for (int i = 0;i<20;i++){
            System.out.println(Thread.currentThread().getName()+i);
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        Thread1 t = new Thread1();
        Thread f = new Thread(t);
        f.start();
    }
}

线程休眠

package Test_Thread;

public class Thread2 implements Runnable {
    @Override
    public void run() {
        for (int i = 0;i<50;i++){
            System.out.println(Thread.currentThread().getName()+"--->"+i);
            if(i%4==0){
                Thread.yield();
            }
        }
    }


    public static void main(String[] args) {
        Thread2 t2 = new Thread2();
        Thread x = new Thread(t2);
        Thread p = new Thread(t2);

        x.setName("线程A");
        p.setName("线程B");

        x.start();
        p.start();
    }
}

线程的同步:

但过多的同步会产生死锁。

 

Synchronized 关键字可修饰 同步代码块和同步方法

package Test_Thread.savemoney;

public class Money {
    public static int money = 50;
}

package Test_Thread.savemoney;

public class Getmoney extends Money implements Runnable  {

    public  synchronized void getmoney(){
        if(money>0) {
            money -= 10;
            System.out.println("取出10元,剩余" + money + "元");
        }
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public void run() {
        while (money<300){
            this.getmoney();
        }
    }
}
package Test_Thread.savemoney;

public class Save extends Money implements Runnable {
    public synchronized void savemoney() {
        money += 20;
        System.out.println("存入20元,剩余" + money + "元");
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    public void run() {
        while (money<300){
            this.savemoney();
        }
    }
}
--------------------------------------------------------------------------
package Test_Thread.savemoney;

public class Test {
    public static void main(String[] args) {
        Save s = new Save();
        Thread t1 = new Thread(s);
        Getmoney g = new Getmoney();
        Thread t2 = new Thread(g);

        t1.start();
        t2.start();
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值