当前位置: 首页 > news >正文

最专业的网站建设哪家好专注营销型网站建设公司 做网站

最专业的网站建设哪家好,专注营销型网站建设公司 做网站,软件技术和软件工程有什么区别,仿做网站的网站目录 一、前言 二、基本概念 进程 线程 三、Java多线程实现 java.lang.Thread类 获取线程名字及对象 获取main进程名 Thread currentThread() 四、线程优先级 设置优先级 一、前言 前期入门学习的代码中,全部都是单线的程序,也就是从头到尾…

 

目录

一、前言

二、基本概念

进程

 线程

三、Java多线程实现

java.lang.Thread类

获取线程名字及对象

获取main进程名

Thread currentThread()

四、线程优先级 

设置优先级 


一、前言

前期入门学习的代码中,全部都是单线的程序,也就是从头到尾地运行

在我们平时使用手机电脑的应用程序时,它们几乎都是多线程地工作

例如idea,typora等等。本文就从现在开始,一步步尝试写多线程程序代码,一起来学习吧!


二、基本概念

进程

任何的软件存储在磁盘中,运行软件的时候,OS使用IO技术,将磁盘中的软件的文件加载到内存,程序在能运行。

这里的内存大小就是电脑内存条的大小,也就是平时所说的运行内存大小,常见的有4G,8G,16G,32G甚至更高。

 应用程序运行的时候进入到内存,程序在内存中占用的内存空间就叫进程

 线程

在内存和CPU之间,建立一条连接通路,CPU可以到内存中取出数据进行计算,这个连接的通路,就是线程

 一个进程(内存资源)可以开启多个线程,也就是多条通路。

  • 并发: 同一个时刻多个线程同时操作了同一个数据
  • 并行: 同一个时刻多个线程同时执行不同的程序

 拓展一个知识,CPU(中央处理器)现在我们都会看到多少核心多少线程,对操作系统而言,一个核心同一时刻只能运行一个进程/线程,所以多核多线程CPU可以极大提升效率

 


三、Java多线程实现

java.lang.Thread类

Java万物是对象,所以线程也是对象,Thread类是线程对象的描述类

实现线程程序可以分为几个步骤:

  1. 定义一个类来继承thread类
  2. 子类重写方法run
  3. 创建子类对象
  4. 调用子类对象的start()方法启动线程

 我们用一个简单的例子来演示一下,运行一下for语句

//定义一个类来继承thread类
//子类重写方法run
public class SubThread extends Thread {public void run(){for(int x = 0 ; x < 50 ;x++)System.out.println("run---"+x);}
}
public static void main(String[] args) {SubThread subThread = new SubThread();    //创建线程程序subThread.start();            //调用子类对象的方法start()启动线程//启动线程,JVM调用方法runfor(int x = 0 ; x < 50 ;x++)System.out.println("main---"+x);
}

我们运行一下,不难看到两个for此时是分开工作,且符合线程的随机性(是个渣男),喜欢哪个,就运行哪个,所以你会发现,每次运行输出的结果都会不一样,无规律性

获取线程名字及对象

 既然我们成功运行了程序,那就进一步了解线程的相关知识。

线程也是有名字的,默认为thread-0,thread-1,thread-2,以此类推

要查看线程的名字,我们可以用thread类的方法getName()返回线程的名字,返回值是String类型

因为继承的是父类thread,要用其方法,也得使用super

public class ThreadName extends Thread {public void run (){System.out.println("线程名字:: "+ super.getName());}
}

当我们想修改线程名时,就可以使用setName()方法

   public static void main(String[] args) {ThreadName threadName = new ThreadName();//threadName.setName("线程1");threadName.start();ThreadName threadName1 = new ThreadName();//threadName1.setName("线程2");threadName1.start();}

获取main进程名

前言说道,入门写过的代码,都是单线程,那这个单线程的main进程名该怎么获取,首先我们可以尝试一下让这个类继承一下thread类

当然,因为是静态static

 public static void main(String[] args){}

所以我们不能直接调用thread的getName()方法,这时我们可以使用另一个方法返回一个线程对象,然后用这个对象来调用getName()方法

Thread currentThread()

  • 静态调用,作用是返回当前的线程对象

  • "当前" , 指的是调用这个方法的线程

我们在上面的main中调用,就可以返回当前(main)的 对象

Thread thread =  Thread.currentThread();
System.out.println("name::"+thread.getName());

 运行结果显示,它的线程名就为:main

 同理,也可以用此方法获取其他继承thread类的子类的线程名,代替getName()


四、线程优先级 

 所有的线程优先级都是默认的,所以会产生刚开始我们设置两个线程进行for循环,输出结果无规律的现象。默认值为5,最低为1,最高为10

设置优先级 

这次使用到的方法如下: 

setPriority()

 创建好对象后,我们调用setPriority()方法即可。

 理论上 优先级高的线程,占用CPU时间相对较长一些

t1.setPriority(MAX_PRIORITY);    //优先级最高
t0.setPriority(MIN_PRIORITY);    //优先级最低

今天的Java多线程程序学习就到此为止了,喜欢的小伙伴记得点赞关注,一键三连,你们的支持就是我最大的动力,谢谢!

http://www.yayakq.cn/news/256770/

相关文章:

  • wordpress开启多站点功百度广告代理商查询
  • 建立网站对吗wordpress调用模版
  • 网站建设湛江网站建设企业关键词
  • 北京市保障房建设投资中心网站首页网站升级中 模版
  • 长沙高端网站开发怎样下载黑龙江人社app
  • 遵义水网站建设主页模板
  • 备案ip 查询网站查询系统网站建设入门书籍
  • 电子商务知名网站自助友链平台
  • 兰州网站建设lst0931网站建设意见
  • 北流科技网站建设怎么做国际货运代理外贸网站
  • seo整站优化系统太仓苏州网站建设
  • wordpress怎么连接主机wordpress 自动seo插件
  • django做网站和js做网站制作 网站 盈利
  • 前程无忧网宁波网站建设类岗位鱼巴适设计师服务平台
  • 合肥快速建站在线咨询百度怎么注册店面地址
  • 福州网站seo公司jsp做的网站站 图标是tomcat的 怎么换
  • 网站开发需要英语襄阳网站seo公司
  • 网站的推广方式有哪些租服务器网站
  • 琼海做网站口碑安装钢结构网架公司
  • 国外网站404错误页苏州网络营销网站建设平台
  • 潜山网站建设全国建筑资质查询系统
  • 建网站做站长怎么赚钱外贸网站建设培训
  • 网站开发工程师好吗网站建设多少钱一个平台
  • 东营专业网站建设公司电话wordpress xml插件
  • ps学做翻页相册网站网站设计与网页制作公司
  • wap建站程序网站建设运营费计入什么科目
  • 网站建设有哪些岗位wordpress输入html代码
  • 如何做网站内页黑马程序员培训学校
  • 鞍山手机网站建设开发板在null不可用
  • 专业网站建设公司哪里好公司网站文件夹设计