多线程基础
来源:互联网 发布:陕西省软件企业协会 编辑:程序博客网 时间:2024/06/06 01:11
什么是并发:
同时执行多个程序,或者一个程序的多段代码
在宏观上,存在并发的,但是在微观上,其实不存在并发
时间片 : 在计算机中,使用时间片来实现并发的运算
在计算甲中,在最小的单位时间上
只能执行一个运算
用来控制多个程序之间的轮转,使得程序交替的运行
达到并发的目的
多个cpu 多个核心 才能实现真正的并发
进程和线程的概念:
进程:在操作系统中,运行的每一个程序 都可以认为是一个进程
线程:能够并发的执行代码
一个进程是由多个线程组成的
并不是说 你一次 我一次 而是通过时间片实现切换
当且仅当 时间到了 才进行线程间的切换
如何实现多线程(两种方法)?
方法1、继承Thread 类,重写run方法,通过start方法开启线程
可以手动调用run方法,但是它不是一个线程
每个线程只能开启一次,如果想多次开启,需要重新创建对象
方法2、实现Runnable接口,重写run方法,通过start方法开启线程
A:TestThreadA
public class TestThreadA extends Thread
{ @Override
public void run()
{
//模拟视频的播放
for (int i = 0; i < 100; i++)
{
System.out.println(i);
}
}
public static void main(String[] args)
{
TestThreadA ta = new TestThreadA();
// 可以调用run方法,只是执行普通的方法,并不具备线程的特性
// ta.run();
//开启线程,通过 start方法
ta.start();
ta = new TestThreadA();
ta.start();
// //模拟音频的播放
// for (int i = 0; i < 10000; i++)
// {
// System.out.println("a");
// }
}
}
B:TestThreadB
public class TestThreadB
{
public static void main(String[] args)
{
MyRunnable run = new MyRunnable();
Thread t = new Thread(run);
t.start();
}
}
class MyRunnable implements Runnable{
@Override
public void run()
{
for (int i = 0; i < 100; i++)
{
System.out.println(i);
}
}
}
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- 多线程基础
- HTML语言代码
- SIM Hot Swap Plugin/out HISR fail while touch in touch panel
- 界面原型
- struts2中s:select标签的使用
- Hashtable和HashMap的区别
- 多线程基础
- 关于html的图像映射
- android弹出dialog后activity背景变暗
- qt中MVC的model的执行过程分析
- linux 添加源
- nginx could not build the server_names_hash错误
- WIN7下VC6.0无法使用打开文件功能(Unable to register this add-in because its DLLRegisterServer return an error)
- Unity3D 调用Android与IOS的剪贴板
- IOS获取设备唯一标识的八种方法