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。即执行到一定步骤,顺序会发生改变。

  • 相关阅读:
    Vsftpd 3.0.2 正式版发布
    Putdb WebBuilder 6.5 正式版本发布
    SoaBox 1.1.6 GA 发布,SOA 模拟环境
    pynag 0.4.6 发布,Nagios配置和插件管理
    Percona Playback 0.4,MySQL 负荷回放工具
    xombrero 1.3.1 发布,微型 Web 浏览器
    Hypertable 0.9.6.4 发布,分布式数据库
    libmemcached 1.0.11 发布
    CryptoHeaven 3.7 发布,安全邮件解决方案
    Android Activity生命周期
  • 原文地址:https://www.cnblogs.com/cxy0210/p/11371718.html
Copyright © 2011-2022 走看看