
——【线程】
文章平均质量分 79
白衣染霜陈
你只管努力,剩下的交给时光。
展开
-
JAVA多线程
概述线程是进程中的内容,而每一个应用程序里面至少有一个线程。1.什么是线程?线程:是进程中用于控制程序执行的控制单元(执行路径,执行情景)。 2.什么是进程?进程:是正在执行中的程序,每一个进程在执行时都有一个执行顺序,该顺序是一个执行路径,或叫做一个控制单元。 示例:[java] view plaincopy原创 2015-08-15 20:44:30 · 827 阅读 · 0 评论 -
同步和异步区别
面试经常问道的题目,上网查了下,很多人长篇大论总是说不到点子上,当然并不是说他们说的不对,可能是自己理解的比较片面。但还是得先概括下:他们最大的区别:同步需要等待,而异步无需等待。例子:普通B/S模式(同步)AJAX技术(异步) 同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干别的事。异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作原创 2015-08-17 14:07:26 · 5781 阅读 · 2 评论 -
Java线程的挂起、恢复和终止
Java线程的挂起、恢复和终止有时,线程的挂起是很有用的。例如,一个独立的线程可以用来显示当日的时间。如果用户不希望用时钟,线程被挂起。在任何情形下,挂起线程是很简单的,一旦挂起,重新启动线程也是一件简单的事。挂起,终止和恢复线程机制在Java 2和早期版本中有所不同。尽管你运用Java 2的途径编写代码,你仍需了解这些操作在早期Java环境下是如何完成的。例如,你也许需要更新或维原创 2017-04-17 22:11:57 · 1792 阅读 · 0 评论 -
Java线程死锁
Java线程死锁需要避免的与多任务处理有关的特殊错误类型是死锁(deadlock)。死锁发生在当两个线程对一对同步对象有循环依赖关系时。例如,假定一个线程进入了对象X的管程而另一个线程进入了对象Y的管程。如果X的线程试图调用Y的同步方法,它将像预料的一样被锁定。而Y的线程同样希望调用X的一些同步方法,线程永远等待,因为为到达X,必须释放自己的Y的锁定以使第一个线程可以完成。死锁是很难调试的原创 2017-04-17 22:08:29 · 410 阅读 · 0 评论 -
Java线程间通信
Java线程间通信上述例题无条件的阻塞了其他线程异步访问某个方法。Java对象中隐式管程的应用是很强大的,但是你可以通过进程间通信达到更微妙的境界。这在Java中是尤为简单的。像前面所讨论过的,多线程通过把任务分成离散的和合乎逻辑的单元代替了事件循环程序。线程还有第二优点:它远离了轮询。轮询通常由重复监测条件的循环实现。一旦条件成立,就要采取适当的行动。这浪费了CPU时间。举例来说原创 2017-04-17 22:05:39 · 439 阅读 · 0 评论 -
Java线程同步
Java线程同步当两个或两个以上的线程需要共享资源,它们需要某种方法来确定资源在某一刻仅被一个线程占用。达到此目的的过程叫做同步(synchronization)。像你所看到的,Java为此提供了独特的,语言水平上的支持。同步的关键是管程(也叫信号量semaphore)的概念。管程是一个互斥独占锁定的对象,或称互斥体(mutex)。在给定的时间,仅有一个线程可以获得管程。当一个线程原创 2017-04-17 22:00:27 · 363 阅读 · 0 评论 -
Java线程优先级
Java线程优先级线程优先级被线程调度用来判定何时每个线程允许运行。理论上,优先级高的线程比优先级低的线程获得更多的CPU时间。实际上,线程获得的CPU时间通常由包括优先级在内的多个因素决定(例如,一个实行多任务处理的操作系统如何更有效的利用CPU时间)。一个优先级高的线程自然比优先级低的线程优先。举例来说,当低优先级线程正在运行,而一个高优先级的线程被恢复(例如从沉睡中或等待I/O中原创 2017-04-17 21:55:45 · 656 阅读 · 0 评论 -
Java isAlive()和join()的使用
Java isAlive()和join()的使用如前所述,通常你希望主线程最后结束。在前面的例子中,这点是通过在main()中调用sleep()来实现的,经过足够长时间的延迟以确保所有子线程都先于主线程结束。然而,这不是一个令人满意的解决方法,它也带来一个大问题:一个线程如何知道另一线程已经结束?幸运的是,Thread类提供了回答此问题的方法。有两种方法可以判定一个线程是否结束。第一,原创 2017-04-17 21:46:18 · 1687 阅读 · 0 评论 -
Java创建多线程
Java创建多线程到目前为止,我们仅用到两个线程:主线程和一个子线程。然而,你的程序可以创建所需的更多线程。例如,下面的程序创建了三个子线程:/*@(#)NewThread.java 2017-4-17 * Copy Right 2017 Bank of Communications Co.Ltd. * All Copyright Reserved *//** *原创 2017-04-17 21:37:54 · 397 阅读 · 0 评论 -
Java创建线程(Runnable接口和Thread类)
Java创建线程(Runnable接口和Thread类)大多数情况,通过实例化一个Thread对象来创建一个线程。Java定义了两种方式:实现Runnable 接口;可以继承Thread类。下面的两小节依次介绍了每一种方式。实现Runnable接口创建线程的最简单的方法就是创建一个实现Runnable 接口的类。Runnable抽象了一个执行代码单元原创 2017-04-17 21:21:23 · 2022 阅读 · 1 评论 -
JAVA主线程
Java主线程当Java程序启动时,一个线程立刻运行,该线程通常叫做程序的主线程(main thread),因为它是程序开始时就执行的。主线程的重要性体现在两方面:它是产生其他子线程的线程;通常它必须最后完成执行,因为它执行各种关闭动作。尽管主线程在程序启动时自动创建,但它可以由一个Thread对象控制。为此,你必须调用方法currentThread()获得它的一个原创 2017-04-17 11:56:21 · 4175 阅读 · 0 评论 -
JAVA线程模型
Java运行系统在很多方面依赖于线程,所有的类库设计都考虑到多线程。实际上,Java使用线程来使整个环境异步。这有利于通过防止CPU循环的浪费来减少无效部分。为更好的理解多线程环境的优势可以将它与它的对照物相比较。单线程系统的处理途径是使用一种叫作轮询的事件循环方法。在该模型中,单线程控制在一无限循环中运行,轮询一个事件序列来决定下一步做什么。一旦轮询装置返回信号表明,已准备好读取网络原创 2017-04-17 11:35:18 · 482 阅读 · 0 评论 -
Java线程的概念
和其他多数计算机语言不同,Java内置支持多线程编程(multithreaded programming)。多线程程序包含两条或两条以上并发运行的部分。程序中每个这样的部分都叫一个线程(thread),每个线程都有独立的执行路径。因此,多线程是多任务处理的一种特殊形式。你一定知道多任务处理,因为它实际上被所有的现代操作系统所支持。然而,多任务处理有两种截然不同的类型:基于进原创 2017-04-16 23:34:47 · 451 阅读 · 0 评论 -
【多线程浅谈】——-1、进程与线程
1.进程:同一个操作系统中执行的一个子程序,包含三部分 虚拟CPU、代码、数据。多进程:同一个操作系统中执行的多个并行的子程序,可以提高CPU的使用率。2.线程:在同一个进程当中执行的子程序流。多线程:同一个程序当中并发执行的多个子程序流,可以提高CPU的使用率。进程和线程的区别:进程有独立的进程空间,进程中的数据存放空间(堆空间和栈空间)是独立的。原创 2016-01-23 22:57:20 · 1052 阅读 · 0 评论