4.14~4.16总结

本文介绍了Java中的多线程概念,包括进程与线程的定义,线程的创建(Thread、Runnable、Callable接口),线程的常用方法,同步机制(同步代码块和同步方法)以及线程的状态。还提及了网络编程的三要素:IP、端口号和协议。
摘要由CSDN通过智能技术生成

 多线程

  • 说起进程,就不得不说下程序,程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。
  • 进程是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位
  • 通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位。

 注意:很多个线程是模拟出来的,真正的多线程指的是有多个CPU,即多核,如服务器。如果是模拟出来的多线程,即在一个CPU的情况下,在同一个时间点,CPU只能执行一个代码,因为切换的很快,所有就有同时执行的错觉;

1.线程的创建

有三种创建方式:

 

1.继承Thread类

重写run方法,run方法里面就是该线程要执行的方法

调用该线程时要调用start方法,不能直接调用run方法

2.实现Runnable接口的方式进行实现

 

 小细节:在MyRun类中不能直接调用getName方法,要使用Thread类的currentThread静态方法来得到当前的对象,再调用getName方法获得线程名;

3.实现Callable接口

 

最后使用git方法获得线程运行的结果

 多线程中的常用成员方法

 细节:如果没有给线程设置名字,他们是有默认的名字的

格式:Thread-X   X是数字从0开始;

static Thread currentThread()        获取当前线程的对象;

细节:

        当JVM虚拟机启动后,会自动的启动多条线程

        其中有一条线程叫做main线程

        他的作用就是去调用main方法,并执行里面的代码

        在以前,我们写的所有的代码,其实都是运行在main线程里面的

static void sleep(long time)           让线程休息指定的时间,单位为毫秒

细节:

        1.哪条线程执行到这个方法,那么哪条线程就会在这里停留对应的时间

        2.方法的参数:就表示睡眠的时间,单位毫秒

                1 秒 = 1000 毫秒

        3.当时间到了之后,线程就会自动的醒来,继续执行下面的其他代码

 

final void setDaemon(boolean on)           设置为守护线程

细节:

        当其他的非守护线程执行完毕后,守护线程会陆续结束

通俗易懂:

        当女神线程结束了,那么备胎也没有存在的必要了;

重点:

在聊天室里面,当你在实现传输文件的时候,要将传输文件的线程设置为守护线程,因为当你在传输文件的时候将聊天室关闭了,那么文件传输也就没有继续进行下去的必要了;

 同步代码块

把操作共享数据的代码锁起来

格式 :

        synchronized (锁){

                操作共享数据的代码;

        }

特点1:锁是默认打开的,有一个线程进去了,锁自动关闭

 同步方法

        就是把synchronized关键字加到方法上面

格式:

        修饰符 synchronized 返回值类型 方法名(方法参数){

                ..........;

        }

 

Java中线程的其中状态:

网络编程

三要素:IP,端口号,协议

 协议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值