Java.SE01.多线程

Java.SE01.多线程1.进程,线程:        所谓进程(process)就是一块包含了某些资源的内存区域。操作系统利用进程把它的工作划分为一些功能单元。         进程中所包含的一个或多个执行单元称为线程(thread)。        一个线程是进程的一个顺序执行流.2. 并发:       微观上所有进程和线程是走走停停的,宏观上都在运行,这种都运行的现象叫并发,但是

大家好,欢迎来到IT知识分享网。



1.进程,线程:

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

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

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

2. 并发:

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

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

Java.SE01.多线程

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.线程池:

                 主要作用:①控制线程数量  ②重用线程

    

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/20760.html

(0)
上一篇 2024-02-05 16:33
下一篇 2024-02-06 09:33

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信