Java多线程<1>
1、Java多线程的概念:
线(Thread):它指的是一个任务的从开始执行流程到结束。
穿线提供执行任务的机构。供java条款。在一个程序可以启动多个并发线程。候执行。
在单处理器系统中,多个线程共享CPU时间,而操作系统负责调度及分配资源给它们。当程序作为一个应用程序来执行时。JAVA解释器为main开启一个线程。
当程序为Applet执行时,Web浏览器启动一个线程来执行applet。还能够在程序中创建附加的线程以执行并发任务。
在JAVA中,每一个任务都是Runnable的实例。
2、创建任务和线程
任务就是对象,为了创建任务,必须为任务定义一个类,任务类必须实现Runnable接口。Runnable接口十分简单,例如以下:
public abstract interface java.lang.Runnable {
// Method descriptor #1 ()V
public abstract void run();
}
接口里就仅仅有一个run方法,须要这种方法告诉系统线程将怎样执行。以下介绍怎样开发任务类:
1、一旦定义了一个TaskClass,就能够用他的构造方法来创建一个任务。比如:
TaskClass task = new TaskClass(參数);
2、任务必须在线程中执行。
Thread thread = new Thread(task);
3、调用start()方法告诉JAVA虚拟机该线程准备执行
thread.start();
以下我就举一个简单的样例:
PrintChar.java
package com.guigu.zhangxx.main;
public class PrintChar implements Runnable{
private char c;
private int num;
public PrintChar(char c,int num){
this.c = c;
this.num = num;
}
public void run() {
for(int i=0;i<num;i++){
System.out.print(c+" ");
}
}
}
CMain.java
package com.guigu.zhangxx.main;
public class CMain {
public static void main(String[] args) {
//创建任务
Runnable print1 = new PrintChar('A',10);
//创建线程
Thread thread1 = new Thread(print1);
//开启线程
thread1.start();
}
}
结果为:
A A A A A A A A A A
版权声明:本文博主原创文章,博客,未经同意不得转载。
Java多线程<1>的更多相关文章
- 40个Java多线程问题总结
前言 Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多.越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的.这篇文章主要是对多线程的问题进行 ...
- Java多线程基础知识篇
这篇是Java多线程基本用法的一个总结. 本篇文章会从一下几个方面来说明Java多线程的基本用法: 如何使用多线程 如何得到多线程的一些信息 如何停止线程 如何暂停线程 线程的一些其他用法 所有的代码 ...
- Java多线程系列--“JUC锁”03之 公平锁(一)
概要 本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念ReentrantLock数据结构参考代码获取公平锁(基于JDK1.7.0_40)一. tryAcqu ...
- Java多线程系列--“JUC锁”04之 公平锁(二)
概要 前面一章,我们学习了“公平锁”获取锁的详细流程:这里,我们再来看看“公平锁”释放锁的过程.内容包括:参考代码释放公平锁(基于JDK1.7.0_40) “公平锁”的获取过程请参考“Java多线程系 ...
- Java多线程--让主线程等待子线程执行完毕
使用Java多线程编程时经常遇到主线程需要等待子线程执行完成以后才能继续执行,那么接下来介绍一种简单的方式使主线程等待. java.util.concurrent.CountDownLatch 使用c ...
- Java多线程 2 线程的生命周期和状态控制
一.线程的生命周期 线程状态转换图: 1.新建状态 用new关键字和Thread类或其子类建立一个线程对象后,该线程对象就处于新生状态.处于新生状态的线程有自己的内存空间,通过调用start方法进入就 ...
- java 多线程 1 线程 进程
Java多线程(一).多线程的基本概念和使用 2012-09-10 16:06 5108人阅读 评论(0) 收藏 举报 分类: javaSE综合知识点(14) 版权声明:本文为博主原创文章,未经博 ...
- 一起阅读《Java多线程编程核心技术》
目录 第一章 Java多线程技能 (待续...)
- 第一章 Java多线程技能
1.初步了解"进程"."线程"."多线程" 说到多线程,大多都会联系到"进程"和"线程".那么这两者 ...
- java从基础知识(十)java多线程(下)
首先介绍可见性.原子性.有序性.重排序这几个概念 原子性:即一个操作或多个操作要么全部执行并且执行的过程不会被任何因素打断,要么都不执行. 可见性:一个线程对共享变量值的修改,能够及时地被其它线程看到 ...
随机推荐
- veridata实验举例(6)验证agent启动先后顺序是否对捕获update操作有影响
veridata实验举例(6)验证agent启动先后顺序是否对捕获update操作有影响 续接veridata实验系列 上篇:"veridata实验举例(5)改动主键上的列值.update ...
- 微通道对接ERP、CRM、OA、HR、SCM、PLM和其他管理系统解决方案
公司现有ERP.CRM.OA.HR.SCM.PLM等管理系统的对接微信公共平台服务 方法1:开放接口 企业开放现有系统数据接口给第三方,或由第三方开发数据接口对接微信公众平台 方法2:获取数据库 企业 ...
- WIP jobs available to MRP
1. Supply 2. Demand 版权声明:本文博客原创文章,博客,未经同意,不得转载.
- 一个极其简洁的Python网页抓取程序,自己主动从雅虎財经抓取股票数据
本程序使用Python 2.7.6编写,扩展了Python自带的HTMLParser,自己主动依据预设的股票代码列表,从Yahoo Finance抓取列表中的数据日期.股票名称.实时报价.当日变化率. ...
- lightoj1027(期望dp)
有一个迷宫,有n个门,走每个的概率都是相同的 每个门有一个数字,如果是正数ai,那么表示走ai天就能走出迷宫,如果是负数,那么走-ai天会回到原地,然后会忘记之前的事情,继续选择门去走 所以,如果都是 ...
- 发展合作-ASP.Net传递页面之间的值
在合作开发中,在页面串传值的时候,遇到了一些困难.在网上搜罗了一下,发现好多的传值方式,能够简单地分下面三种. 一. URL传值 原页面的值放到目标页面的URL中.然后通过QueryString方法获 ...
- mysql copy复制拷贝表数据及结构的几种方式(转)
mysql拷贝表操作我们会常常用到,下面就为您详细介绍几种mysql拷贝表的方式,希望对您学习mysql拷贝表方面能够有所帮助.假如我们有以下这样一个表:id username password--- ...
- poj1185炮兵阵地
#include <iostream> #include <cstdio> #include <cmath> #include <algorithm> ...
- Nginx 防CC攻击拒绝代理访问
先大概说说简单的结构…前端一个Nginx反向代理,后端一个Nginx instance app for PHP…实际上就是个Discuz,之前面对CC攻击都是预警脚本或者走CDN,但是这次攻击者不再打 ...
- Linux System Programming note 8 ——File and Directory Management
1. The Stat Family #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> ...