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 每周总结的主要内容,如果未能解决你的问题,请参考以下文章

每周总结(第二周)

每周总结

每周总结①

每周总结5.26

8.12至8.18第七周学习情况

假期周进度报告七(8.12-8.18)