纯初学者都能懂的Java线程的创建和锁的问题

纯小白,所以我们这里只讲三种创建线程的方式,忽略线程池。

如果出错,多多指教。

首先我们了解一些基本名词。

程序:就是一段静态的代码

进程:正在运行的一个程序

线程:进程可进一步细化为线程

多线程的优点:

1,提高程序的响应,增强用户体验;

2,提高计算机系统CPU的利用率

3,改善程序结构

忽略线程池的三种创建线程的方式:

1,继承Thread类

2.实现Runnable接口

3,实现Callable接口

Thread常见的方法如下

另外俩种方式,也是跟这个类的套娃,所有我们一定要熟悉这些方法。

注意:

所有的线程的创建我们都以经典的三个窗口买一百张票举例

1.继承Thread创建线程演示

代码运行截图

 

简单总结就是4个步骤:

1,继承Thread这个类

2,重写run() 这个方法

3,new 继承Thread类这个类的对象,new了几个就是创建了多少个线程;

4,我们需要逐一调用start()方法来开启线程;

方式2;实现Runnable接口

 代码运行截图:

 总结:

1,我们需要实现这个接口中run()方法

2.我们只需要new一个实现了这个接口的对象;

3,然后new Thread()这个类,把实现这个接口的对象放在该构造器中,就是套娃操作

4,start()开始该线程

注意:我们只需要创建一个实现该接口的对象,我们需要几个线程,只需要将new Thread()把这个接口放到构造器中就好。

方式3:实现Callable这个接口

 代码运行截图:

 总结:

1,我们需要实现Callable接口中的call()方法,且这个可以有返回值,供我们查看;

2,new实现了这个接口的类

3,需要new FutrueTask这个类来进行第一次套娃

4,需要new Thread这个类进行二次套娃

5,开启线程

简单来说:1,我们只需要一个实现了该接口的类

                2,我们需要new FutrueTask 和 new Thread来进行俩次套娃,是成对出现的;

                3,开启线程;

线程安全问题解决:

注意:我们一定是需要同一把锁,所以锁一定要唯一;

共有三种方式:

1,同步代码块

2,同步方法

3,Lock锁

 一,继承Thread类解决线程安全问题

1,同步代码块的方法

 运行截图;

 错误的this当锁演示;

2,同步方法演示

 运行截图:

 3,lock演示

 代码运行截图:

 总结:1,当我们创建的对象有多个时候,我们一般用 当前类做同步监视器,在Thread类中;

               2.在接口接口中,因为我们只是new一个实现接口的实现类,然后是套娃,我们可以直接使用this来充当同步监视器;

              

               

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜抱抱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值