黑马程序员-----java多线程的学习
来源:互联网 发布:安徽省大数据比赛 编辑:程序博客网 时间:2024/05/22 01:40
---------------------- android培训、java培训、期待与您交流! -----------------------
早就听说andriod的开发要用到多线程的技术,甚至是android开发的非常重要的核心技术
看来要引起重视,扎扎实实学习一下了。
学习完了之后,发现其中的线程调度给人的印象蛮深刻的,下面是自己做的小实验
public class MyThread implements Runnable {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + "正在运行" );
}
}
}
public static void main(String[] args) {
MyThread mt=new MyThread();
Thread t1=new Thread(mt);
Thread t2=new Thread(mt);
Thread t3=new Thread(mt);
Thread t4=new Thread(mt);
Thread t5=new Thread(mt);
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
执行结果为:
Thread-2正在运行
Thread-2正在运行
Thread-2正在运行
Thread-0正在运行
Thread-1正在运行
有意思吧,线程的运行和我们书写语句的顺序居然没有关系!!!
甚至是你再次运行程序的时候,会发现,居然出现一个新的顺序!!!
原来,当线程进行运行时,是由jvm的线程调度器来决定那个线程先执行,那个后执行的
如果你想要顺序执行,可采用的方法是第一,加上同步锁synchronized,一次只能一个访问,直到它释放同步锁为止
比如上面的语句可以这样来写,结果就会变成顺序的了
public synchronized void run() {
for (int i = 0; i < 5; i++) {
if (ticket > 0) {
System.out.println(Thread.currentThread().getName() + "正在运行" );
}
}
}
当然也有第二种方法,就是设定线程的优先级,这个我没有试验,有时间试验之后
在来谈谈经验
--------------------- android培训、java培训、期待与您交流! ----------------------
- 黑马程序员-----java多线程的学习
- 黑马程序员:多线程的学习
- 黑马程序员--多线程的学习
- 黑马程序员---java多线程 学习笔记
- 黑马程序员java学习笔记,多线程
- 黑马程序员java学习—多线程1
- 黑马程序员-java学习笔记-多线程
- 黑马程序员-----Java基础学习多线程
- 黑马程序员---java多线程学习总结
- 【黑马程序员】java多线程学习总结
- 【黑马程序员】Java多线程学习及应用
- 黑马程序员—java基础学习--多线程
- 黑马程序员------Java基础学习------多线程
- 黑马程序员-----java多线程(学习日记)
- 黑马程序员 多线程学习
- 黑马程序员---多线程学习
- 黑马程序员-java多线程
- 黑马程序员--java 多线程
- 数组名与指针的关系
- String,StringBuffer的区别
- Windows下的Memcache安装
- WIN下PHP Memcache的安装和使用
- C语言点滴
- 黑马程序员-----java多线程的学习
- Android基础】页面跳转与传值(Activity跳转与传值)
- 小白谈memcache和memcached的区别
- 使用vim删除^M
- JAVA线程池shutdown和shutdownNow的区别
- photoshop 常用技巧
- jquery实现达到文本框的最大长度时跳到下一个文本框
- [Android]ScrollView和ListView套用冲突的解决方法
- smarty常用