线程知识的学习 二——线程基础

本文介绍了Java中线程的基本概念,包括线程的创建、执行方式、线程属性与方法,如使用Thread类或Runnable接口创建线程,start()与run()方法的区别,以及线程的中断、睡眠、优先级等关键特性。

线程基础图

上篇博客我们从操作系统宏观的说了说线程和线程的Boss进程是什么,以及他们之间的关系,那么这篇博客,我们开始了解一下线程基础的知识。
下图是关于使用线程的最最基本的入门功能:

这里写图片描述

线程创建

在java中如何创建一个线程?

简单的说有两种方法:使用java.lang.Thread类或者java.lang.Runnable接口编写代码来定义、实例化和启动新线程。不论是使用继承Thread方法,还是实现Runnable接口,都需要复写 run()方法。线程启动后,run()是线程执行的核心。

我们使用Thread 来创建一个线程:

/** 
* 测试扩展Thread类实现的多线程程序
* 
* @author leizhimin 2008-9-13 18:22:13 
*/ 
publicclass TestThreadextends Thread{ 
    public TestThread(String name) {
        super(name);
    } 

    publicvoid run() {
        for(int i = 0;i<5;i++){
            for(long k= 0; k <100000000;k++);
            System.out.println(this.getName()+" :"+i);
        } 
    } 
}

然后再使用实现Runnable接口来创建一个线程:

/** 
* 实现Runnable接口的类
* 
* @author leizhimin 2008-9-13 18:12:10 
*/ 
publicclass DoSomethingimplements Runnable {
    private String name;

    public DoSomething(String name) {
        this.name = name;
    } 

    publicvoid run() {
        for (int i = 0; i < 5; i++) {
            for (long k = 0; k < 100000000; k++) ;
            System.out.println(name + ": " + i);
        } 
    } 
}

以上两种方式,推荐使用的是实现接口Runnable来创建一个线程。因为实现接口比继承Thread类灵活。

ThreadFactory

其实,创建线程还有第三种方式:ThreadFactory的方式。这是通过线程工厂的方式来创建线程。提高工厂,了解设计模式的童鞋都很清楚,工厂的作用,它就是帮助我们来创建线程的。那么什么情况下,我们需要使用到线程工厂呢?

我们需要实现线程工厂 ThreadFactory接口,然后实现工厂中唯一的方法:newThread()。这个方法就是我们要改造的东东。也是我们使用threadFactory 的目的——定制线程。在newThread()方法中,我们根据自己的需求,定制代码,同时还可以添加一些辅助的方法来定制。
例如:我们指定创建多少个线程之后就停止创建,即使再有被调用,创建新的线程,也不行。大家都明白,一个进程中的线程也不是越多越好,要根据CPU来定,本身没有那么大的能力,还有跑那么多线程,反而会拖慢线程。这就好比是一个工厂的盈利最大的时候是工厂有100个人,但是如果工厂雇佣了200个人,那么就要开始消耗盈利了。

以上就是线程创建的三种方式,我们应该在合适的适合选择合适的创建方式。

线程的执行

线程的执行 start OR run ?

刚才我们讲了run是线程运行中核心的执行方法,也就是说,启动线程后,就要执行run,那么,我们可以直接调用run吗?
我们来看看 正常的代码是如何写?

public static void main(String[] args) {
        Thread t1 = new TestThread("阿三");
        Thread t2 = new TestThread("李四");
        t1.start(); 
        t2.start(); 
    } 

看到,上边的代码,使用的是start()方法。这也是正确的启动 线程的途径。那么run 行吗?

答案是:不行。原因:如果直接写 t1.run();这是调用,不是开启一个线程,run只是单纯的调用run()方法。程序中不会多一个并行的线程,如果原来有 一个main线程在运行,那么现在还是一个main线程在运行;start()是 开启一个并行的线程,程序中会有两个并行的线程再走,一个main,一个是t1 线程。

这里写图片描述

属性 & 方法

属性

最后我们来说说线程的属性。线程的属性主要有这几个:线程的ID,线程的Name,线程的状态,线程的优先级。
这里的线程优先级,在并发线程的时候,我们可以通过设置线程的优先级来争取线程的CUP的资源。

方法

有这么几个方法需要知道:start,run,sleep,interrupt,yield,join。

interrupt

其中start,run不说了,我们来说说interrupt()方法。这是线程中断的方法。如果使用interrupt那么就必须截取interruptException异常。

sleep

然后是sleep 和 yield方法。sleep 和 yield都可以让一个线程暂停,且释放CPU的资源;不同的是 yield一般用在 调试代码中。
要理解yield(),必须了解线程的优先级的概念。线程总是存在优先级,优先级范围在1~10之间。JVM线程调度程序是基于优先级的抢先调度机制。在大多数情况下,当前运行的线程优先级将大于或等于线程池中任何线程的优先级。但这仅仅是大多数情况。

join

join是等待线程运行结束。如果有多个线程同时在运行,那么使用join方法,会等待所有的线程都执行完,才开始进行后续的操作。

这写是最基本的线程的入门知识,分享到这里,下篇博客继续介绍线程组,局部线程变量的知识。
附图
这里写图片描述

智慧政务:打造“线上”有温度、“线下”有速度的新体验 在数字化浪潮的推动下,智慧政务正成为政府服务转型的重要方向。通过数据共享与流程优化,智慧政务解决方案致力于解决企业和群众反映强烈的办事难、办事慢、办事繁等问题,实现“一网通办”,让政务服务更加便捷、高效。 一、智慧政务的发展趋势 近年来,随着数字中国战略的深入实施,政务服务正朝着“全国一体化”方向发展。从最初的“可看可查”到如今的“一网通办”,政务服务经历了从互联网+政务服务(省市县)到长三角一体化政务平台,再到区域/全国一体化在线政务服务平台的飞跃。国务院及各级政府积极推进大数据、政务服务改革,明确建设目标、内容和节奏,为智慧政务的发展提供了强有力的政策支持。 、智慧政务的核心挑战 尽管智慧政务取得了显著进展,但仍面临诸多挑战。跨部门、多流程环节的政务服务中,数据共享时效性差、权责不清成为制约协同效率的主要因素。同时,数据安全管控不足、数据质量问题缺乏责任追溯,也影响了政务服务的可信度和质量。此外,在线办理深度不够、群众认同感不高,以及政务热线服务多样性、便捷性和智能性不足,都是当前智慧政务需要解决的问题。 三、智慧政务解决方案的创新实践 针对上述挑战,智慧政务解决方案通过一系列创新实践,推动政务服务向线上线下一体化方向发展。具体而言,该方案包括以下几个关键方面: “一码通”服务:面向民众和企业,提供行、办、用、管一体化的政务服务。通过“一码通”,群众和企业可以在政务服务大厅及试点事项中,使用电子证照调用授权,实现身份证明、社会保障信息核验、医疗健康一码通办等功能。这不仅简化了办事流程,还提升了用户体验。 “一网通”服务:提供全程网办的政务服务。通过智能预审、远程面审、一窗办理、智能引导等功能,实现政务服务的全流程网上办理。群众和企业可以足不出户,通过政务服务官网、APP、小程序等多种渠道,享受7*24小时全天候的政务服务。 “一号通”服务:作为政务服务智能总客服,通过全媒体接入方式,整合热线、微信、邮件、短信等多种服务渠道,实现一号对外、服务通达。运用人工智能技术,构建自动服务应答体系,提高服务效率和质量。同时,通过大数据分析,及时掌握舆情热点和政情民意,为服务监督和实时决策提供依据。 “协同办”与“协同管”:面向政府工作人员,提供办、查、看、管一体化的工作门户。通过集成门户、工作中心、信息中心、知识中心等功能模块,实现政务工作的统一管理和高效协同。同时,整合监管数据、打通监管业务、感知监管风险,助力监管决策,提升政府治理能力。 四、智慧政务的未来展望 随着新基建的加速推进,5G、AI、工业互联网、物联网等新型基础设施的建设将为智慧政务的发展提供更强有力的支撑。未来,智慧政务将继续深化数据共享与流程优化,推动政务服务向更加智能化、便捷化、个性化的方向发展。同时,通过加强跨部门、跨领域的监管协同,提升政府治理能力和服务水平,为构建数字政府、掌上政府奠定坚实基础。 总之,智慧政务解决方案通过创新实践,正在逐步解决政务服务中的痛点问题,让“线上”服务更有温度、“线下”服务更有速度。随着技术的不断进步和应用的深入推广,智慧政务将迎来更加广阔的发展前景。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值