zoukankan      html  css  js  c++  java
  • 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。即执行到一定步骤,顺序会发生改变。

  • 相关阅读:
    Linux 下curl模拟Http 的get or post请求
    ShopNC学习笔记(转)
    (转) shopnc数据库操作
    Mysql开发规范
    长连接、短连接、长轮询和WebSocket
    一个支付宝没有安装app时看不到web网页,无法支付的问题
    MVVM设计模式
    c中的scanf和printf
    import和class关键字的区别
    oc中的注释
  • 原文地址:https://www.cnblogs.com/cxy0210/p/11371718.html
Copyright © 2011-2022 走看看