文档章节

Java-线程(1)

本人慧星撞地球
 本人慧星撞地球
发布于 2016/07/15 11:13
字数 647
阅读 1
收藏 0

1、线程的基本概念

线程是一个程序内部的顺序控制流。一个进程(应用程序(任务))可以有多个线程。

Java中的线程是由java.lang.Thread类来实现的。

每个程序中的main方法都是一个线程(主线程)。如果想添加新线程可以通过创建Thread类的实例来实现。启动一个线程调用Thread实例的start()方法。整个新线程的操作内容都是在Thread类的实例的run方法中完成的。所以run()称为线程体。

其实在同一个时间点上,一个CPU只能支持一个线程运行。只是CPU运行速度很快,所以看起来像多个线程同时在执行。

2、线程的创建和启动

有两种创建线程的方法。一是定义的线程类实现Runable接口。并实现run()方法。二是继承Thread类,并重写里边的run()方法。run()方法是“线程体”。

注意:(1).因为java中的线程是由java.lang.Thread类实现的,即每一个Thread对象代表一个新线程,所以只要new一个Thread对象一个线程程就出现了。所以当用实现Runable接口这种方法创建一个线程时,必须new一个Thread对象出来,把实现了Runable接口类的实例当做参数传到thread中。

(2)启动新开辟的线程用start()方法。

(3)这两种方法应该首选实现Runnable接口的方式创建线程。因为接口可以同时实现多个,而类只能单继承。

3、线程的状态转换

4、线程的4种方法介绍

(1)Thread.sleep()静态方法。将当前线程睡眠并制定毫秒数。抛出Interrupted异常,当线程被中断的时候。

(2)join()。调用某线程的该方法,将当前线程和该线程“合并”,即等待该线程结束,再恢复当前线程的执行。

(3)yield()。让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会。因此,使用yield()的目的是让相同优先级的线程之间能适当的轮转执行。但是,实际中无法保证yield()达到让步目的,因为让步的线程还有可能被线程调度程序再次选中。

(4)notify()/notifyAll()唤醒等待池中的一个/全部线程。

本文转载自:http://www.cnblogs.com/xdp-gacl/p/3633936.html

共有 人打赏支持
本人慧星撞地球
粉丝 0
博文 24
码字总数 10716
作品 0
朝阳
程序员
mysql千万级测试1亿数据的分页分析测试

上一篇文章我们测试一些order by查询和分页查询的一些基准性能,现在我们来分析一下条件索引查询的结果集的测试 现在我们继续进行一个测试相同的表结构插入1亿条数据这次用到的是Innodb表引擎...

idea_biu
2012/07/02
0
1
深入JDK源码之ThreadLocal类

学习JDK中的类,首先看下JDK API对此类的描述,描述如下:该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程...

陶邦仁
2015/03/26
0
6
14、Java并发性和多线程-Java ThreadLocal

以下内容转自http://ifeve.com/java-theadlocal/: Java中的ThreadLocal类可以让你创建的变量只被同一个线程进行读和写操作。因此,尽管有两个线程同时执行一段相同的代码,而且这段代码又有...

easonjim
2017/06/16
0
0
java类ThreadLocal的理解

ThreadLocal是什么 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是thread local variable(线程局部变量)。也许把它命名为ThreadLocalVar更...

保罗的寓言
2011/05/21
0
1
[转]理解ThreadLocal

ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 Th...

inferrrrrr
2009/11/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kali Linux Docker 練習

docker pull kalilinux/kali-linux-docker docker run -t -i kalilinux/kali-linux-docker /bin/bash apt-get update apt-get install htop apt-get install nmap apt-get install wpscan ap......

BaiyuanLab
今天
1
0
通俗大白话来理解TCP协议的三次握手和四次分手

最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,就...

onedotdot
今天
2
0
TiDB 在爱奇艺的应用及实践

爱奇艺,中国高品质视频娱乐服务提供者,2010 年 4 月 22 日正式上线,推崇品质、青春、时尚的品牌内涵如今已深入人心,网罗了全球广大的年轻用户群体,积极推动产品、技术、内容、营销等全方...

TiDB
今天
1
0
Web系统大规模并发:电商秒杀与抢购

一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战。如果Web系统不做针对性的优化,会轻而易举地陷入到异常...

xtof
今天
3
0
代码质量管理平台-sonarqube

在工作中,往往开发的时候会不怎么注重代码质量的人很多,存在着很多的漏洞和隐患等问题,sonarqube可以进行代码质量的审核,而且十分的残酷。。。。。接下来我们说下怎么安装 进入官网下载:...

落叶清风
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部