Java.SE01.多线程



1.进程,线程:

         所谓进程(process)就是一块包含了某些资源的内存区域。操作系统利用进程把它的工作划分为一些功能单元。

         进程中所包含的一个或多个执行单元称为线程(thread)。

         一个线程是进程的一个顺序执行流.

2. 并发:

        微观上所有进程和线程是走走停停的,宏观上都在运行,这种都运行的现象叫并发,但是不是绝对意义上的“同时发生。

       线程调度机制是OS提供的一个用于并发处理的程序。java虚拟机自身也提供了线程调度机制,用于减轻OS切换线程带来的更多负担。


3.创建线程

          java.lang.Thread类是线程类;

Thread创建线程:

01.    public class TestThread extends Thread{
02.        
03.        public void run() {
04.            for(int i=0;i<10;i++){
05.                System.out.println("我是线程");
06.            }
07.        }
08.    }

启动线程:

    Thread thread = new TestThread();//实例化线程 
    thread.start();//启动线程 

匿名类方式创建线程 :

Thread thread  = new Thread(){    //匿名类方式创建线程 
        public void run(){
            //线程体    
        }
    };
    thread.start();//启动线程


4.获取线程信息:        

  • long getId():返回该线程的标识符
  • String getName():返回该线程的名称
  • int getPriority():返回线程的优先级
  • Thread.state getState():获取线程的状态
  • boolean isAlive():测试线程是否处于活动状态
  • boolean isDaemon():测试线程是否为守护线程
  • boolean isInterrupted():测试线程是否已经中断
  • public class TestThread {
    02.        public static void main(String[] args) {
    03.            Thread current = Thread.currentThread();
    04.            long id = current.getId();
    05.            String name = current.getName();
    06.            int priority = current.getPriority();
    07.            Thread.State state = current.getState();
    08.            boolean isAlive = current.isAlive();
    09.            boolean isDaemon = current.isDaemon();
    10.            boolean isInterrupt = current.isInterrupted();
    11.            System.out.println("id:"+id);
    12.            System.out.println("name:"+name);
    13.            System.out.println("priority:"+priority);
    14.            System.out.println("state:"+state);
    15.            System.out.println("isAlive:"+isAlive);
    16.            System.out.println("isDaemon:"+isDaemon);
    17.            System.out.println("isInterrupt:"+isInterrupt);
    18.        }
    19.    } 
    


    5.线程优先级:

    Thread.MIN_PRIORITY //最低1

    Thread.MAX_PRIORITY //最高10

    Thread.NORM_PRIORITY //默认5

    6.守护线程

             守护线程与普通线程在表现上没有什么区别;

             守护线程的特点是,当进程中只剩下守护线程时,所有守护线程强制终止。

    7.Thread的静态方法sleep用于使当前线程进入阻塞状态:


    8.锁机制:

              Java提供了一种内置的锁机制来支持原子性:

              同步代码块(synchronized 关键字 ),同步代码块包含两部分:一个作为锁的对象的引用,一个作为由这个锁保护的代码块。

              ①静态方法锁:                    

    01.   public synchronized static void xxx(){
    02.        ….
    03.    }
    


    9.线程安全API/非线程安全API

              非线程安全:
                        StringBuilder; ArrayList; LinkedList ;HashSet; HashMap 
              线程安全:
                        StringBuffer; Vector;Hashtable;


    10.线程池:

                 主要作用:①控制线程数量  ②重用线程
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值