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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 影响力147753321 高级黑马   /  2013-6-14 16:52  /  1628 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多线程中的thread中的方法是怎么控制线程的运行的。里面的方法对主线程有什么影响?另外还有其静态方法与动态方法区别?到底是怎么用的。搞不明白.?求高手们来说说?

评分

参与人数 1技术分 +1 收起 理由
尹丽峰 + 1 神马都是浮云

查看全部评分

5 个回复

倒序浏览
一种是继承Thread类,须重写父类的run()方法,另一种是实现Runnable接口,也是实现run()方法。run() 方法很重要,是当你新建一个线程,运行时的核心,注意,你不要自己去调用run()方法,如果你自己调用,就只是你写那行调用代码,运行那行代码的线程在执行该方法,而不是你新建线程执行的

动态和静态区别 1.静态的方法在整个应用程序其间存储在内存中,速度快,但占用内存.  2.动态的方法在先声明类实例才能调用类中的方法.     3.一般使用频繁的方法用静态方法,用的少的方法用动态的。静态的速度快,占内存。动态的速度相对慢些,但调用完后,立即释放类,可以节省内存,可以根据自己的需要选择是用动态方法还是静态方法。4.静态方法主要的问题就是数据同步的问题。如果你的静态方法的类中不保存私有变量那么什么问题都不会有的。最好是包要操作的数据全部以参数的方式传到方法中去5. 静态方法是类方法,调用时不需要创建类实例。6. 静态方法是静态绑定到子类,不是被继承。

评分

参与人数 1技术分 +1 收起 理由
尹丽峰 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
Thread中 start()方法是开启线程的
线程之间的运转是不会相互影响的,除非它们共享资源时使用临界区
所以他们之间执行是轮换的

评分

参与人数 1技术分 +1 收起 理由
尹丽峰 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
1,如果在自定义的代码中,自定义线程呢?
通过对api的查找,java已经提供了对线程这类事物的描述。就是Thread类

创建线程的第一种方式:继承Thread类.
步骤:
1,继承Thread类
2,覆写Thread类中的run方法
3,调用线程的start方法,该方法有两个作用:①启动线程②调用run方法

发现运行结果每一次都不同。因为多线程都获取cpu的执行权。cpu执行到谁,谁就运行。
明确一点:某一时刻,只能有一个程序在运行。(多核除外)
cpu在做着快速切换。以打到看上去同时运行的结果。
形象滴把多线程的运行比喻为:在互相抢夺cpu的执行权。
这就是多线程的一个特性:随机性。谁抢到谁执行,至于执行多久,cpu说的算。
所以说(如果在两个多线程的程序中添加一个for循环里面有标明各自的语句的话,在主线程添加一个for循环,然后会进行3个线程的会交替执行的)
如果主线程与其它线程同时执行,可能一会执行主线程,一会执行其它线程.

评分

参与人数 1技术分 +1 收起 理由
尹丽峰 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
likairoudou 发表于 2013-6-14 17:28
一种是继承Thread类,须重写父类的run()方法,另一种是实现Runnable接口,也是实现run()方法。run() 方法很 ...

线程的静态方法与动态方法有何区别?hread中的方法是怎么控制线程的运行的??
回复 使用道具 举报
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马