zoukankan      html  css  js  c++  java
  • java多线程编程核心技术(一)--多线程技能

    1、进程和线程的概念

      1、进程:进程是操作系统的基础,是一次程序的执行,是一个程序及其数据在处理机上顺序执行时所发生的活动,是程序在一个数据集合上运行的过程,他是系统进行资源分配和调度的一个独立单位。

      2、线程:线程可以理解为进程中独立运行的子任务,线程只能归属于一个进程并且它只能访问该进程所拥有的资源。

    2、实现多线程编程的方式

      1、继承Thread类,该类在源码实现上,也是实现了Runnable接口,使用该类最大的局限性就是java不支持多继承。

      2、实现Runnable接口.

    3、常用API

      1、currentThread():返回代码段正在被哪个线程调用的信息。

      2、isAlive():判断当前线程是否处于活动状态。

      3、sleep():当前线程休眠。

      4、getId():获取当前线程的唯一标识。

    4、停止运行线程的方法

      1、使用退出标志,是线程正常退出,也就是当run方法完成后线程退出。

      2、使用stop方法强行终止线程,不推荐此方法,因为stop和suspend、resume方法都是作废过期的方法,使用将产生不可预期的结果。

      3、使用interrupt方法中断线程。

    5、suspend方法和resume方法

      1、suspend():暂停线程

      2、resume():恢复暂停线程的执行

      缺点:这两个方法,使用不当,极易造成公共的同步方法被独占,使得其它线程无法访问。还会出现因为线程暂停而导致数据不同步的情况

    6、yield():这个方法的作用是放弃当前的CPU资源,将它让给其它的任务去占用CPU执行时间,但放弃的时间不确定,有可能刚刚放弃,马上又获得CPU时间片。

    7、线程的优先级

      1、在操作系统中,线程可以划分优先级,优先级较高的线程得到的CPU资源较多,也就是CPU优先执行优先级较高的线程对象中任务。在java中,线程的优先级分为1~10这10个等级。如果超出,抛出异常

      2、线程优先级的继承性:在java中,线程的优先级具有继承性,比如A线程启动B线程,则B线程跟A线程的优先级是一样的。

      3、优先级具有规则性和随机性:高优先级的线程总是大部分先执行完,但不代表高优先级的线程总是每一次都先执行完。

    8、守护线程:在java线程中,有两种线程,一种是用户线程。一种是守护线程,守护线程是一种特殊的线程,当进程中不存在非守护线程了,则守护线程自动销毁。典型的守护线程就是垃圾会收线程

  • 相关阅读:
    平台
    重构之践
    Linux.NET
    系统分析员级下午试题II(论文)解答方法
    通用泛型存储接口的设计
    .NET平台4.0 发布网站流程及出错总结
    在IIS上发布基于Windows Azure Service Bus的WCF服务
    epoll + 多线程实现并发网络连接处理
    Linux进程地址空间之初探:一
    排序、搜索
  • 原文地址:https://www.cnblogs.com/shun-gege/p/7813018.html
Copyright © 2011-2022 走看看