java线程

java线程的概念

为何要多线程

线程是比线程更小的概念,一个进程里边会有多个线程。
一个cup要处理多个事情,只能把时间切分成多个,例如1毫秒处理音乐,下一毫秒处理qq等。这样每处理的一个内容叫做线程。

简单的java线程的实例

java的多线程有两种实现的方式,一种是Thread类的方式,继承这个类并且重新run方法。
线程只能启动一次。
实现的代码如下:

package com.thread;

class MyThread extends Thread{
    //实现run方法,当线程的实例调用start方法时执行就是这个run方法。
    public void run() {
        System.out.println(getName()+":线程开始运行了");
    }
}

public class ThreadTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MyThread mt=new MyThread();
        mt.start();//开启线程
    }
}

运行的结果如下:
Thread-0:线程开始运行了

Runnable创建线程

可以创建线程,但是不能够开启线程。这个创建线程的方法在实际当中用的还是比较多的。
如下代码:

//实现接口的方式来创建线程Runnable
class PrintRunnable implements Runnable{
    //实现这个方法是必须的
    public void run() {
        System.out.println(Thread.currentThread().getName()+":正在运行");
    }
}

实际使用这个Runnable的接口,如果要创建线程则需要借助于Thread才可以
如下代码:

PrintRunnable pr=new PrintRunnable();
        //但是Runnable创建线程必须要Thread才能够创建,自己本身是不能够直接创建的,如下
        Thread t=new Thread(pr);
        t.start();//开始这个线程

运行的实际结果是:
Thread-0:正在运行

关键字implements 继承接口的关键字要记得

线程的生命周期

1,new创建一个线程
2,通过start变成可运行状态
3,可运行状态,cpu分配时间后变成正在运行状态
4,阻塞状态(sleep停止,join,wait,I/0流)。如果变成不停止则是sleep超时,join完成,wait是要notify或者是notifyAll才可以。
5,不管哪个状态只要线程调用了stop方法就会线程就会停止

sleep方法的使用

Thread.sleep(ms);//表示的是这个线程多少毫秒后,cpu才会给它分配时间。

join方法的使用

这个是抢线程。就是要等到这个线程结束后才能够执行别的线程。
mt.join();//mt是Thread的子类的实例。
mt.join(ms);//表示这个线程抢过来后执行多少毫秒后再让出去。

java线程的优先级

java的线程的优先级别是从1~10 如果超过10就会报错。
mt.getPriority();//获取线程的优先级
mt.setPriority(int priority); //设置java线程的优先级。
java线程的优先级越高,就会越限制性这个线程。

线程的同步

java线程的同步是在执行这个线程时不会被其他的内容所打扰。这样保证这个线程正常执行完毕。
在静态方法,普通方法、和代码块都可以加上这个关键字synchorized

线程间的通信

使用的是wait方法和notify的方法或者是notifyAll的方法。
记住cup是无规律的获取线程的。所以有的时候我们再获取一个线程的时候,可能会持续对一个线程进行多次的获取。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容

  • 📦 本文以及示例源码已归档在 javacore 一、线程简介什么是进程什么是线程进程和线程的区别 二、线程基本用法...
    静默虚空阅读 255评论 0 1
  • 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让...
    尧淳阅读 1,583评论 0 25
  • 下面是Java线程相关的热门面试题,你可以用它来好好准备面试。 1) 什么是线程? 线程是操作系统能够进行运算调度...
    冰箱哥哥阅读 517评论 0 2
  • 1 前言 在JDK5之前,Java多线程以及其性能一直是个软肋,只有synchronized、Thread.sle...
    七寸知架构阅读 3,964评论 5 61
  • 感恩我们和睦的大家庭,人多力量大,什么事都能齐心协力的办好,愿我们大家庭的每一个人都平平安安,快快乐乐,健健康康。...
    孔美荣阅读 85评论 0 0