多线程笔记2
来源:互联网 发布:淘宝发布虚拟物品 编辑:程序博客网 时间:2024/06/07 18:45
多线程笔记2
多线程的创建方法:
第一种方式
定义类并继承thread类
重写thread类run方法,目的是未来将自定义代码存储在run方法中,让线程运行。
创建线程对象并使用strat方法(启动线程,调用run方法)
class Demo extends Thread{ public void run() { for (int x = 0; x < 100; x++) { System.out.println("Demo run.." + x); } }}public class ThreadDemo{ public static void main(String[] args) { Demo d = new Demo(); d.start(); for (int x = 0; x < 100; x++) { System.out.println("hello--" + x); } }}
在主线程执行之后,开启了一个新线程demo,然后交替获取cpu的执行权(即cpu快速切换执行每一个进程中的线程),在某一时刻,只能有一个程序在运行(多核除外)。
多线程运行行为是在互相抢夺cpu的执行权,谁抢到谁执行,执行多长时间为cpu决定,说明了多线程一个特性:随机性。如果主线程执行完毕,还要其他线程,则该进程一直存在。
如某种病毒(线程)一直抢占cpu资源导致死机。双线程如果使用多核cpu可实现同时执行(内存则出现瓶颈),但依然无法使用java控制如何切换程序(参考多核编程技术)
为什么使用thread要覆盖run方法??
Thread类用于描述线程,该类定义了一个功能,用于存储线程要运行的代码,该存储功能即为run方法里的代码。
下面程序直接调用run,则为单线程。
public class ThreadDemo{ //此程序直接调用run,则为单线程 public static void main(String[] args) { Demo d = new Demo(); // d.start(); 执行start()方法是开启线程并执行run方法。 d.run(); //仅仅执行run()方法则只是调用对象的方法,虽然创建了线程,但是没有使用. for (int x = 0; x < 100; x++) { System.out.println("hello--" + x); } }}
- 多线程笔记2
- 多线程笔记2
- 多线程学习笔记2
- 多线程学习笔记2
- 多线程学习笔记(2)
- java多线程学习笔记2
- c#多线程编程笔记2
- 多线程学习笔记(2)
- iOS 多线程笔记_(2)
- java多线程笔记(2)
- Qt多线程笔记 (2)
- 多线程学习笔记2-GCD
- 多线程笔记
- 多线程笔记
- 多线程笔记
- 多线程笔记
- 多线程笔记
- 多线程 笔记
- JAVA开发邮件服务器——POP3
- hdu 2612 Find a way(迷宫)
- 关于博客更新
- 工具栏使用示例
- 纯JAVA开发邮件服务器——SMTP
- 多线程笔记2
- hdu 4611 模拟+规律
- HDU 1151
- 30-同一html元素分类控制、通配符选择器、选择器优先级、margin知识
- python类定义
- 项目总结——程序员必读正确使用svn
- WindowsPhone使用HtmlAgilityPack解析HTML
- hdu-1228-A + B
- Linux中断处理浅析