A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马王晓明 中级黑马   /  2013-8-4 00:47  /  1418 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-8-5 18:50 编辑

什么时候使用多线程,怎么判断该用和不该用 。使用多线程能解决哪些问题?多线程安全吗

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3

查看全部评分

10 个回复

倒序浏览
呵呵,加油。。。。。。
回复 使用道具 举报
简单点说,当你的程序中有多个对象需要同时工作的时候,这时就需要多线程。最经典的就是“生产者--消费者”问题了,这里面生产者和消费者都是同时存在的,具体你可以百度。再说一个具体的例子:《坦克大战》玩过吧,里面的每个坦克都是一个(对象)线程,每个子弹也是一个(对象)线程,因为它们都有自己的行走路线。
多线程的优点:
    1.提高系统利用率
    2.提高用户体验
    还有其他的,不一一列举了。
安全性不用担心,有专门的锁来实现,具体请看基础视频11天。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
如何创建线程 第一种
  |-- 声明一个类,继承Thread类,并覆盖run方法
  |-- 建立子类的对象,相当于创建了一个线程
  |-- 如何开启和运行线程,需要调用线程的start()方法
  |-- start()启动一个线程,JVM调用线程的run()方法
  |-- 为什么继承Thread 覆盖run方法
    |-- 继承Thread,子类变成了线程类
    |-- 覆盖run方法,java工程师,后期不知道线程要运行的代码是什么
      |-- 提供了一个方法,让你来覆盖run,覆盖后,JVM会自动的调用线程的run

第二个创建线程的方式  实现Runnable接口
  |-- 定义类,实现Runnable接口
  |-- 覆盖接口的抽象方法 run
  |-- 建立Thread对象,在Thread构造方法中,传递Runnable接口的实现类对象
  |-- 调用Thread对象start()方法

多线程操作共享数据的安全隐患
  |-- 当多个线程,操作同一共享数据的是,存在安全隐患
  |-- 也是开发多线程程序中,最头疼的问题
  |-- 程序人员,必须保证数据的准确性
  |-- 解决多线程操作共享数据的安全问题,使用同步技术来解决问题
     |-- 同步技术,当线程去操作数据的时候,一个线程不操作完毕,其余的线程无法进行操作
     |-- 同步代码块:格式
         synchronized(对象){
            //线程操作的共享数据
         }
     |-- 保证多线程运行,持有锁的线程才能运行,没有锁的线程,只能等待,临时阻塞

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
{:soso_e100:}顶一下楼主 共同学习哈{:soso_e100:}
回复 使用道具 举报
taotao 发表于 2013-8-4 10:43
简单点说,当你的程序中有多个对象需要同时工作的时候,这时就需要多线程。最经典的就是“生产者--消费者” ...

恩啊 坦克大战的例子恰到好处 看来多线程应该也是核心内容啊 好好学
回复 使用道具 举报
xuaner0719 发表于 2013-8-4 22:47
如何创建线程 第一种
  |-- 声明一个类,继承Thread类,并覆盖run方法
  |-- 建立子类的对象,相当于创建了 ...

讲的很详细  很有帮助 谢谢
回复 使用道具 举报
黑马李昂 发表于 2013-8-4 23:17
顶一下楼主 共同学习哈

共同学习 共同进步 :P
回复 使用道具 举报
java应用程序通常是单线程的,要想开发多线程的java应用程序有两种方法:(1)继承java.lang.Thread类(2)实现java.lang.Runnable接口
当多个线程共同访问同一资源时,就要考虑线程安全的问题,否则就会出现“脏数据”的情况。采用同步技术可以控制线程是安全的.java的同步技术有两种:同步代码块和同步函数。

点评

技术分够了哦。。祝愿顺利入学  发表于 2013-8-5 18:50

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
多线程安全,但效率比较低。因为每次程序运行的时候都需要去经验锁的问题。当不考虑效率只考虑程序安全性的话,这时候可以用多线程!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马