8.12~8.18 每周总结
Posted cxy0210
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.12~8.18 每周总结相关的知识,希望对你有一定的参考价值。
本周Java学习如下:
多线程学习:
package duoxiancheng; public class Music extends Thread @Override public void run() for(int i=0;i<1000;i++) try Thread.sleep(100); System.out.println("听音乐"); catch (InterruptedException e) // TODO Auto-generated catch block e.printStackTrace();
package duoxiancheng; public class Eat extends Thread @Override public void run() for(int i=0;i<1000;i++) //间隔零点一秒 try Thread.sleep(100); System.out.println("吃饭"); catch (InterruptedException e) // TODO Auto-generated catch block e.printStackTrace();
package duoxiancheng; public class Demo1 /** * 听音乐 */ private static void music() for(int i=0;i<1000;i++) System.out.println("听音乐"); /** * 吃饭 */ private static void eat() for(int i=0;i<1000;i++) System.out.println("吃饭"); public static void main(String[] args) /*music(); eat();*/ //多线程 /** * 利用多线程实现一边吃饭一边听音乐 */ Music musicThread=new Music(); Eat eatThread=new Eat(); musicThread.start(); eatThread.start();
实现同时执行 吃饭和听音乐的操作
多线程的引入,使两个操作同时进行,有序。
package duoxiancheng; public class Demo3 implements Runnable @Override public void run() // TODO Auto-generated method stub for(int i=0;i<10;i++) // 获取当前线程 Thread t=Thread.currentThread(); System.out.println(t.getName()+":"+i); //返回线程名称 public static void main(String[] args) Demo3 demo3=new Demo3(); Thread t1=new Thread(demo3); System.out.println("t1是否活动:"+t1.isAlive()); t1.start(); //检查线程是否是活动状态 System.out.println("t1是否活动:"+t1.isAlive());
以上代码实现了返回线程的名称,并且检查线程的活动状态是否活动。
package duoxiancheng; public class Demo5 implements Runnable @Override public void run() // TODO Auto-generated method stub for(int i=0;i<10;i++) // 获取当前线程 Thread t=Thread.currentThread(); System.out.println(t.getName()+":"+i); //返回线程名称 public static void main(String[] args) /** * 设置线程优先级 */ Demo5 demo5=new Demo5(); Thread t1=new Thread(demo5,"X 1"); Thread t2=new Thread(demo5,"Y 1"); Thread t3=new Thread(demo5,"Z 1"); t1.setPriority(Thread.MAX_PRIORITY); t2.setPriority(Thread.MIN_PRIORITY); t3.setPriority(Thread.NORM_PRIORITY); t1.start(); t2.start(); t3.start();
实现线程的优先级,x优先级最大,z其次,y最小,程序按优先级由高到低执行。
package duoxiancheng; public class Demo6 implements Runnable @Override public void run() // TODO Auto-generated method stub for(int i=0;i<10;i++) try Thread.sleep(100); // 获取当前线程 Thread t=Thread.currentThread(); System.out.println(t.getName()+":"+i); //返回线程名称 if(i==5) System.out.println("线程礼让:"); Thread.currentThread().yield(); catch (InterruptedException e) // TODO Auto-generated catch block e.printStackTrace(); public static void main(String[] args) Demo6 demo6=new Demo6(); new Thread(demo6,"a 1").start();; new Thread(demo6,"b 2").start();
线程礼让:当a执行到5时先执行b,然后当b执行到5时先执行a。即执行到一定步骤,顺序会发生改变。
以上是关于8.12~8.18 每周总结的主要内容,如果未能解决你的问题,请参考以下文章