java多线程并发上传实例_多线程 网络编程 文件上传案例多线程

Day13 多线程3).多线程的好处:提高程序的运行效率,提高用户的体验度。 线程不会因为等待某个资源而进入等待状态创建新的线程:* 定义类继承Thread* 重写方法run* 创建Thread子类的对象* 调用子类对象的方法start()** 为什么继承Thread* Thread类是线程对象类* 继承了Thread,子类也是线程对象** 为什么重写run...
摘要由CSDN通过智能技术生成

Day13 多线程

3).多线程的好处:

提高程序的运行效率,提高用户的体验度。 线程不会因为等待某个资源而进入等待状态

创建新的线程:

*    定义类继承Thread

*    重写方法run

*    创建Thread子类的对象

*    调用子类对象的方法start()

*

*  为什么继承Thread

*    Thread类是线程对象类

*    继承了Thread,子类也是线程对象

*

*  为什么重写run

*    Sun工程师,不清楚其他人员用线程做什么

*    全部写在run中

*

*  为什么调用start

*    线程: JVM利用Windows中的功能实现

*    start() 调用 本地方法,开启的线程

2.Thread类的方法,可以获取到线程名字

*    String getName()

*

*  Thread类方法setName(String name)

*  设置线程名字

*

*  获取主线程名

*    Thread类,定义静态方法

*    static Thread currentThread() 返回当前线程

*    什么是当前线程:现在运行的线程

第二种方式实现Runnable接口避免了单继承的局限性,所以较为常用。实现Runnable接口的方式,更加的符合面向对象,线程分为两部分,一部分线程对象,一部分线程任务。

第一种方式继承Thread类,线程对象和线程任务耦合在一起。一旦创建Thread类的子类对象,既是线程对象,有又有线程任务。

实现runnable接口,将线程任务单独分离出来封装成对象,类型就是Runnable接口类型。Runnable接口对线程对象和线程任务进行解耦。

3.创建线程程序第二个方式,接口方式

*  java.lang.Runnable

*    定义类实现接口Runnable

*    重写抽象方法run

*    创建Thread类对象,Thread(Runnable r)

*    调用Thread对象start()方法

4. 售票代码,单独定义方法

*  pay方法,所有的代码,全是线程操作的共享数据

*  同步整个方法,方法的定义修饰符,加同步

*

*  同步方法有锁吗,同步方法的锁就是this对象

*

*  静态同步方法有锁吗

*    静态方法的对象锁可不是this

*    锁是 本类.class对象

*    Ticket.class

当一个线程在执行操作共享数据的多条代码过程中,其他线程参与了运算。就会导致线程安全问题的产生。

6.其实,多线程程序并不能提高程序的运行速度,但能够提高程序运行效率,让CPU的使用率更高。

7.思考:线程对象调用 run方法和调用start方法区别?

线程对象调用run方法不开启线程,仅是对象调用方法。线程对象调用start开启线程,并让jvm调用run方法在开启的线程中执行。

2:请描述在什么样的情况下会出现线程安全的问题。

线程安全问题都是由全局变量及静态变量引起的。若每个线程中对全局变量、静态

变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程

同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。

6.java中提供了线程同步机制,它能够解决上述的线程安全问题,请分别写出他们的格式

3.1同步代码块:在代码块声明上 加上synchronized

synchron

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值