范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

大数据编程入门Java多线程编程

  当执行一些耗时操作比如发起网络请求或者读取数据库时,常常会使用多线程编程,那么什么是多线程编程呢?今天小编为大家带来的是大数据编程入门:Java多线程编程。
  一、Java多线程概念
  Java为多线程编程提供了内置支持。线程是指进程中的单个顺序控制流。一个进程中可以有多个线程并发,每个线程并行执行不同的任务。
  多线程是多任务处理的一种特殊形式,但多线程使用较少的资源开销。
  这里定义了另一个与线程相关的术语-进程:进程包括操作系统分配的内存空间,并包含一个或多个线程。线程不能独立存在,这必须是一个过程的一部分。进程将一直运行,直到所有非守护进程线程都完成运行。
  多线程可以满足程序员编写高效的程序并充分利用CPU。二、一个线程的生命周期
  线程是一个动态执行过程,和自然界的生物一样,它也有一个从产生到死亡的过程。
  以下将展示一个线程完整的生命周期图:
  ① 新建状态:
  使用new关键字和Thread类或其子类创建线程对象后,则该线程对象处于新状态。它将保持此状态,直到程序start()线程。
  ② 就绪状态:
  当线程对象调用start()方法时,线程进入就绪状态。处于就绪状态的线程位于就绪队列中,需要等待JVM中线程调度器的调度。
  ③ 运行状态:
  如果就绪线程获得CPU资源,它可以执行run(),并且线程正在运行。处于运行状态的线程是最复杂的,可能会被阻塞、就绪和失效。
  ④ 阻塞状态:
  如果线程执行sleep、suspend和其他方法并丢失其占用的资源,则该线程将从运行状态进入阻塞状态。睡眠时间到期或设备资源已获得后,可以重新进入就绪状态,可分为三种类型:
  A. 等待阻塞:处于运行状态的线程执行wait()方法,使线程进入等待阻塞状态。
  B. 同步阻塞:线程无法获取同步同步锁(因为同步锁被其他线程占用)。
  C. 其他阻塞:当通过调用线程的sleep()或join()发出I/O请求时,线程将进入阻塞状态。当sleep()状态超时时,join()等待线程终止或超时,或者I/O处理完成,线程返回就绪状态。
  ⑤ 死亡状态:
  当正在运行的线程完成任务或出现其他终止条件时,该线程将切换到终止状态。三、线程的的优先级
  每个java线程都有一个优先级,这有助于操作系统确定线程的调度顺序。
  java线程的优先级是一个值范围为1(Thread.MIN_PRIORITY )-10(Thread.MAX_PRIORITY )默认情况下,每个线程都被分配一个优先级NORM_PRIORITY(5)。
  优先级越高的线程对程序越重要,处理器资源应该在优先级较低的线程之前分配。然而,线程优先级并不能保证线程的执行顺序,它非常依赖于平台。四、创建一个线程
  在Java中 提供了三种创建线程的方法:
  ① 通过实现 Runnable 接口;
  ② 通过继承 Thread 类本身;
  ③ 通过 Callable 和 Future 创建线程。五、通过实现Runnable接口来创建线程
  创建线程的最简单方法是创建一个实现Runnable接口的类。
  类只需要执行一个方法调用run()就可以实现Runnable,声明如下:
  public void run()
  可以重写此方法,重要的是要理解run()可以调用其他方法、使用其他类和声明变量,就像主线程一样。
  在Runnable接口的类实现后,可以在类中实例化一个线程对象。
  下面是Thread定义的一种常用的构造方法:
  Thread(Runnable threadOb,String threadName);
  上面的threadOb是实现Runnable接口的类的实例,threadName指定新线程的名称。
  创建新线程后,在它运行之前调用它的start()方法。
  void start();
  以下是一个创建并执行的线程实例:
  运行结果:
  六、通过继承Thread来创建线程
  创建线程的第二种方法是创建继承Thread类的新类,然后创建该类的实例。
  继承的类必须重写run()方法,该方法是新线程的入口点。它还必须调用start()方法来执行。
  尽管此方法被列为多线程实现,但它本质上是Runnable接口的一个实例。
  运行结果:
  七、Thread方法
  1、下面是Thread类的一些重要方法的列表:
  方法
  描述
  public void start()
  使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
  public void run()
  如果线程是使用独立的Runnable运行对象构造的,则调用Runnable对象的run方法;否则,该方法不执行任何操作并返回。
  public final void setName(String name)
  改变线程名称,使之与参数 name 相同。
  public final void setPriority(int priority)
  更改线程的优先级。
  public final void setDaemon(boolean on)
  将该线程标记为守护线程或用户线程。
  public final void join(long millisec)
  等待该线程终止的时间最长为 millis 毫秒。
  public void interrupt()
  中断线程。
  public final boolean isAlive()
  测试线程是否处于活动状态。
  2、测试线程是否处于活动状态,Thread对象调用上述方法。以下方法是Thread类的静态方法。
  方法
  描述
  public static void yield()
  暂停当前正在执行的线程对象,并执行其他线程。
  public static void sleep(long millisec)
  将当前执行的线程休眠(暂停)指定的毫秒数,这受系统计时器和计划程序的准确性和准确性的影响。
  public static boolean holdsLock(Object x)
  当且仅当当前线程在指定的对象上保持监视器锁时,才返回 true。
  public static Thread currentThread()
  返回对当前正在执行的线程对象的引用。
  public static void dumpStack()
  将当前线程的堆栈跟踪打印至标准错误流。
  3、实例
  下面的ThreadClassDemo 程序演示了Thread类的一些方法:
  运行结果:
  八、通过 Callable 和 Future 创建线程
  1、创建Callable接口的实现类并实现call()方法,该方法将用作线程执行器并具有返回值。
  2、创建Callable实现类的实例,并使用FutureTask类包装Callable对象。FutureTask对象封装了Callable对象的call()方法的返回值。
  3、使用FutureTask对象作为Thread对象的target,创建并启动新线程。
  4、调用FutureTask对象的get()方法,获取子线程执行后的返回值。
  实例:
  九、创建线程的三种方式的对比
  1、当通过实现Runnable和Callable接口创建多个线程时,线程类只实现Runnable接口或Callable接口,还可以继承其他类。
  2、通过继承Thread类创建多线程时,易于编写,如果需要访问当前线程,则不需要使用Thread.currentThread() 方法,您可以直接使用this来获取当前线程。十、线程的几个主要概念
  在使用多线程编程时,需要了解下面的这几个概念:
  ① 线程同步
  ② 线程间通信
  ③ 线程死锁
  ④ 线程控制:挂起、停止和恢复十一、多线程的使用
  有效利用多线程的关键是理解程序是并发执行的,而不是串行执行的。例如,程序中有两个子系统需要同时执行。此时,需要多线程编程。
  通过使用多线程,我们可以编写一个非常高效的程序。但是,请注意,如果创建太多线程,程序执行的效率实际上会降低,而不是提高。
  记住,上下文切换开销也很重要,果创建的线程太多,CPU将花费比执行程序更多的时间进行上下文切换!
  以上就是关于大数据编程入门:Java多线程编程的全部内容了,希望这篇文章可以帮助到大家~

金蝶集团徐少春互联网3。0时代要让数字发挥出更强战斗力来源人民网原创稿十四五是我国经济高质量转型发展产业提质增效升级的关键时期。其中,数字经济作为一种新的经济形态,正成为推动经济发展质量提升的重要驱动力。大数据时代,数字经济上升至国家马云的彻底退出,代表着一个时代落幕了上周马云辞去最后的阿里董事职位彻底退出了这个他一手打造的商业帝国意料之中的情景,却仍叫人唏嘘不已记得大约5年前在一次策略报告会上我对机构的大客户们说马云,大家不要羡慕他用不了多久他网络短视频内容审核趋严!短视频节目未经授权不得剪辑影视剧央广网北京12月16日消息12月15日,中国网络视听节目服务协会发布了网络短视频内容审核标准细则(2021)。针对社会高度关注的泛娱乐化低俗庸俗媚俗问题的新表现,以及泛娱乐化恶化舆构建科技创新联合体需重视三大问题来源小康原标题构建科技创新联合体需重视三大问题构建科技创新联合体是我国突破卡脖子关键技术的重要途径。科技创新联合体可看作一个联系紧密的实体或系统,是由政府企业高校研究机构中介服务机北汽一夜之间成为戴姆勒最大股东,有多厉害?北汽集团成为戴姆勒第一大股东12月13日,北京汽车集团有限公司宣布,为加强双方战略合作,其自2019年已增持戴姆勒集团的股份至9。98。这表明,双方充分认可过去长期合作的成功,并重解放双手的品仕乐立式吹风机,让干发更简单快速你听说过立式吹风机吗?这时候你应该满脸疑问了。常见的手持吹风机在生活中非常常见,不管是男生还是女生,基本是每天都会用到吹风机,帮助自己快速干发,然后躺被窝睡觉了。而这一款立式吹风机双面大厂左手裁员,右手安抚撰文财经天下周刊作者周享玥李逗薛永玮许歌编辑董雨晴互联网大厂进入关怀时间裁员风波席卷了整个互联网,大厂们却开始在员工福利上拼命放大招。12月14日,阿里巴巴在内网公布了一系列员工暖2000左右手机推荐!这三款最便宜的骁龙888系列旗舰,最高直降800临近年底,换个新机犒劳自己情理之中,当然也会有很多朋友想着,正好给长辈也升级一下装备,让他们也能享受到晚辈的关爱之心。其实,不管是自己换新,还是是给长辈换新,2000左右价位机型,优惠对标618,苏宁易购启动六一宝宝节长江日报5月30日讯5月26日晚8点,苏宁易购六一宝宝节掰头大会在多个平台播出,官宣六一宝宝节全面启动。六一宝宝节定位于打破营销套路,打破传统电商促销节奏。它是大促,更是一场成年人国产手机冠军再次易主,华为跌出前三,小米也并不是第一近几年来手机市场格局一直都在不断地变化当中,不管是国内还是国外厂商,都为了争夺市场而发愁。尤其是今年开始,华为在手机业务上做出了无奈让步之后,更是让自己的出货量大幅下滑,其他厂商也骁龙888手机只要2299元,还有对手吗?120Hz6400万三摄立体双扬智能手机行业竞争激烈,今年各大手机厂商推出了多款骁龙888处理器的手机,现在临近618期间,各大手机开始对之前发布的机型进行降价促销活动,realmeGT更是将价格调整到2499元
复星医药与英矽智能宣布,达成1300万美元首付款的AI制药合作雷峰网消息,近日,上海复星医药与英矽智能达成合作协议,在全球范围内共同推进多个靶点的AI药物研发。这项战略合作包括针对四个指定靶点的以人工智能驱动的药物研发合作,以及双方对于英矽智一加10Pro智能手机获TUV南德36个月流畅度A等级认证深圳2022年1月11日美通社近日,国际独立第三方检测检验和认证机构TUV南德意志集团(以下简称TUV南德)为深圳市万普拉斯科技有限公司(以下简称一加,英文缩写OnePlus)旗舰如何挑选超高性价比的路由器1。先说现在怎么选择路由器,现在百兆宽带已经普及,那么路由器选择至少需要满足两个标准,A千兆端口B支持2。4G和5G频段。从型号上来说,温饱级别是AC1200,其中AC代表wifi云狐J5一加10Pro参数报价对比云狐J5手机机型云狐J5一加10Pro最新价格4580元4999元屏幕尺寸4。5英寸6。7英寸屏幕类型柔性AMOLED分辨率128072032161440像素525ppi屏幕技术1从泰康模式看保险电商的突围之路泰康人寿的保险电商模式是,借助交易频繁高粘性高流量的互联网平台来加大产品的销售力度,同时完善自身平台的交易结构,通过客户需求把握产品搭配组合和自身网站交易流程的优化来提高用户体验。苹果2021年总共向开发者支付600亿美元品玩1月11日讯,据新浪科技消息,苹果周一表示,2021年总共向开发者支付了600亿美元,自2008年苹果应用商店AppStore推出以来总共支付了2600亿美元,这表明AppSt国际艺术市场新风口?NFT推动数字艺术热潮警惕骗局也不少西班牙先锋报网站近日报道称,基于区块链技术的NFT(非同质化代币)推动了艺术市场的发展。在一年以前,这种营销艺术品的方式还鲜为人知,但现在正逐渐普及。1992年的第1条短信不久前在推广数字人民币的一大难题央行从2014年就开始研究数字人民币。它被称为eCNY,旨在取代已经在流通的现金和硬币。它是由央行统一管理发行的,不同于比特币等加密货币(不受任何央行的管辖)。迄今为止,央行已经通5390万!vivo正式打败苹果,国产手机三板斧果然有效在全球手机市场,苹果公司一直是一个特立独行的存在,它自己一家公司就攫取了手机市场70以上的利润,而三星华为小米等其他上百家手机公司瓜分剩下的30。根据知名调研机构Bloomberg证券之星APP四川长虹(600839)01月11日在投资者关系平台上答复了投资者关心的问题。投资者董秘你好,建议宿舍不要新装电视机等多媒体产品了,优先选用按摩椅。另外公司只有美菱在开布局老式按摩美媒元宇宙人才争夺升温,微软AR团队流失近百员工多人转投Meta华尔街日报1月11日消息,据微软前雇员和网上的工作履历透露出的信息,随着各公司对于拥有构建元宇宙技能的人才争夺升温,微软的增强现实(AR)团队在过去一年里流失约100名员工,其中许