java线程基础
创始人
2024-01-20 21:02:25

最近,想弄一个雪花飘落,结果,搞了两三个小时没弄出来。主要是雪花飘落可能需要用到线程。有人是通过一个雪花去实现,然后通过集合去实现漫天雪花。不管怎么说,做开发,可能线程学习也是一块绕不过去的大山。

一.线程和进程

1.什么是进程?

进程是正在运行的程序。 举例:Windows任务管理器中的进程

  • 是系统进行资源分配和调用的独立单位
  • 每一个进程都有它自己的内存空间和系统资源。

 

2.什么是线程?

线程:进程中单个顺序控制流,是一条执行路径。

单线程:一个进程如果只有一条执行路径,则称为单线程程序。举例:记事本程序

多线程:一个进程如果有多条执行路径,则成为多线程程序    举例:扫雷程序

  • 线程是程序中执行的线程。 Java虚拟机允许应用程序同时执行多个执行线程。

二..线程的创建方式

实现方式一:继承Thread类

将一个类声明为一个Thread的子类。 这个子类应该重写run类的方法Thread 。 然后可以分配并启动子类的实例。

简述就是:

  • 定义一个类MyThread继承Thread类
  • 在My Thread类中重写run()方法
  • 创建My Thread类的对象
  • 启动线程
public class MyThread extends Thread{@Overridepublic void run() {for(int i=0;i<100;i++){System.out.println(i);}}
}
public class MyThreadDemo {public static void main(String[] args) {MyThread my1=new MyThread();MyThread my2=new MyThread();my1.run();my1.run();System.out.println("\n");my1.start();my2.start();}
}

 

 问题:

  • 为什么要重写run()方法?

因为run()是用来封装被线程指向的代码

  • run()方法和start()方法的区别?

run():封装线程执行的代码,直接调用,相当于普通方法的调用。

start():启动线程;然后由虚拟机调用此线程的run()方法。

实现方式二: 实现Runable接口

  • 声明一个实现Runnable接口的类。 那个类然后实现了run方法。 然后可以分配类的实例,在创建Thread时作为参数传递,并启动。

      

public class MyRunnable implements Runnable{@Overridepublic void run() {for(int i=0;i<100;i++){System.out.println(Thread.currentThread().getName()+":"+i);}}
}
public class MyRunnableDemo {public static void main(String[] args) {//创建对象MyRunnable my=new MyRunnable();Thread t1=new Thread(my);Thread t2=new Thread(my);t1.start();t2.start();}
}

 小结:多线程实现方式有两种: 1.继承Thread类 2.实现Runable接口

相比于继承Thread类,实现Runnable接口的好处

  • 避免java单继承的局限性
  • 适合多个相同程序的代码去处理同一个资源的情况,把线程和程序的代码,数据有效分离,较好的体现了面向对象的设计思想。

 

三.获取当前线程名 

public class MyThread extends Thread{@Overridepublic void run() {for(int i=0;i<100;i++){System.out.print(getName()+":"+i+" ");}}
}

测试类保持不变,最后运行得 

 

public class MyThreadDemo {public static void main(String[] args) {MyThread my1=new MyThread();MyThread my2=new MyThread();
//获取当前正在运行的线程对象的名称System.out.println(Thread.currentThread().getName());}
}

 

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
毛笔是谁发明的 目前发现最早的... 毛笔人人都见过,现在很多中国人家里还会有那么一两枝,读小学的时候往往还都练过几天的描红,众多家长将自...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
人世界上最大的生殖器 世界最大... 1. 卡图马人——女人可随意强暴男人的民族2. 卡拉莫贾人——禁止女人穿裤子的奇特民族3. 哈扎比人...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...