黑马程序员--Java多线程
来源:互联网 发布:河南卫生统计网络直报 编辑:程序博客网 时间:2024/06/01 09:54
------- android培训、java培训:期待与您交流! ---------
Java多线程
一、进程和线程概念
现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。
进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就 是一个进程。
线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。
“同时”执行是人的感觉,在线程之间实际上轮换执行。
进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就 是一个进程。
线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。
“同时”执行是人的感觉,在线程之间实际上轮换执行。
二、创建线程:
1,第一种方法:通过继承Thread类。
1)定义类继承Thread类。
2)复写Thread类中的run方法。
3)调用线程的start方法,该方法有两个作用:启动线程,调用run方法。
4)代码示例:
class ThreadDemo extends Thread{public void run(){for(int i=0;i<100;i++){System.out.println("Demo thread run");}}}public class Demo {public static void main(String[] args) { new ThreadDemo().start();} }
5)上面的代码中最少有两个线程,一个是main主线程,另一个就是new ThreadDemo().start();
2,第二种方法:通过实现Runnable接口
1)定义类实现Runnable接口
2)覆盖Runnable接口中的run方法。将线程要运行的代码放入该run方法中。
3)通过Thread类建立线程对象。
4)将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
5)调用Thread类的start方法,开启线程并调用Runnable接口之类的run方法。
6)代码示例:
class ThreadDemo extends Thread{public void run(){for(int i=0;i<100;i++){System.out.println("Demo thread run");}}}class RunnableDemo implements Runnable{public void run() {for(int i=0;i<100;i++){System.out.println("Demo Runnable thread run");}}}public class test111 {public static void main(String[] args) { new Thread(new RunnableDemo()).start(); new ThreadDemo().start();} }7)当然涉及到多线程,就会有安全问题,可以用同步功能或者java锁机制来解决。
- 黑马程序员-java多线程
- 黑马程序员--java 多线程
- 黑马程序员-java多线程
- 黑马程序员--Java多线程
- 黑马程序员--java多线程
- 黑马程序员:Java多线程
- 黑马程序员 Java多线程
- 黑马程序员---Java多线程
- 黑马程序员---多线程【java】
- 黑马程序员----JAVA----多线程---
- 黑马程序员-java多线程
- 黑马程序员-java 多线程
- 黑马程序员-------Java多线程
- 黑马程序员-java多线程
- 黑马程序员-Java多线程
- 黑马程序员 java 多线程
- 黑马程序员--java多线程
- 黑马程序员-java多线程
- ubuntu 12.04 终端内启动gvim超慢的解决办法
- Spinner样式大全
- some command for centos
- 从CVPR2013看计算机视觉研究的三个趋势
- struts2采用convention-plugin实现零配置
- 黑马程序员--Java多线程
- 【算法导论】动态规划算法之装配线调度
- KMP 字符串模式匹配算法
- SVN查看代码改动记录方法
- 浅谈string
- java学习之路----java类库------克隆技术
- Unity3d 定时器的使用
- 七、匿名函数[js笔记]
- 在matlab中运行mex文件时碰到的错误:matlab已停止工作