Java多线程

进程是程序(任务)的执行过程(具有动态性,必须在动态执行时才能被称为进程,对于静态存储的程序不能说是进程);

进程特点:持有资源(共享内存,共享文件)和线程;故而进程是资源和线程的载体


线程是系统中最小的执行单元,同一进程中有多个线程,线程共享进程的资源;

要点:

1、Java对线程的支持

thread类,rannable接口

2、线程的创建和启动

3、线程常用的方法

4、如何正确停止线程

如何正确地停止Java中的线程

已经不再使用stop()方法来停止线程;因为该方法会导致线程戛然而止,不知道线程完成了什么,不知道那些工作还没有做,无法进行一些清理工作;

应该使用退出标志当线程退出标志显示线程要退出时,会为程序执行后续的应该完成的操作,使得一个完成的业务步骤能够完整地执行完毕;在执行完整的业务步骤之后可以有足够的时间进行代码清理工作;从而保证了代码的安全性;

其中,interrupt方法不能用来停止线程,该方法的初衷仅仅是中断程序,而不是停止程序;

~~线程之间的争用

~~线程的交互——互斥与同步

<1>线程互斥:在同一时间只能有一条线程对关键数据或者临界区进行操作;

<2>线程同步:线程之间的一种通信机制;某一个线程做了一件事,它会以某种形式告知其他的线程它已做完这件事;

互斥的实现:增加一个锁对象;synchronized(intrinsic lock)关键字或者代码块;

同步的实现:wait()/notify()/notifyAll(),这三个方法均为object对象的成员函数,而不是线程thread对象的函数;调用wait()方法的线程和调用notifyAll()方法的线程不是同一个线程的同一次操作中执行的,是两个不同的线程,分别调用;

如何理解同步:WaitSet(可理解为线程休息室)

总结:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java多线程学习 [-] 一扩展javalangThread类 二实现javalangRunnable接口 三T...
    影驰阅读 3,008评论 1 18
  • 本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。 首先讲...
    李欣阳阅读 2,517评论 1 15
  • 写在前面的话: 这篇博客是我从这里“转载”的,为什么转载两个字加“”呢?因为这绝不是简单的复制粘贴,我花了五六个小...
    SmartSean阅读 4,809评论 12 45
  • 该文章转自:http://blog.csdn.net/evankaka/article/details/44153...
    加来依蓝阅读 7,395评论 3 87
  • 偷了懒,跑去坐着的时候内心很忐忑,中午和昨天一样吃了一个手抓饼,一个人在楼梯间默默啃饼的时候觉得自己好可怜,是啊,...
    许我向你看1994阅读 260评论 0 0