Java中线程的实现:
Java中线程的实现:
一、线程简介:
实现的两种方式为:
1、Thread类
2、Runnable接口
都在java.lang中
都有共通的方法:public void run()
二、线程常用方法

线程启动:start()
线程睡眠:sleep()
线程抢占:join()
线程让步:yield()
三、线程实例
实例一:Thread类实现
class Xc extends Thread //创建线程所需要继承的类
{
public void run() //run方法是覆盖的父类方法
{
for(int i=0;i<20;i++)
{
System.out.println("子函数");
}
}
}
public class L6_1
{
public static void main(String[] args)
{
Xc xc = new Xc();
//如果直接运行run方法,那么run方法就变成了一个普通的方法,
//在这个程序表现为先输出20个“子函数”,在输出20个“主函数”,
//(运行线程的话,我们的预期结果是让他交替进行)
//xc.run();
xc.start(); //谁调用的start方法,程序就去自动调用run方法,并且是作为线程调用
//start会单开启一个线程,而不是直接调用。
for(int i=0;i<20;i++)
{
System.out.println("主函数");
}
}
}
实例二:Runnable接口实现
class Xc2 implements Runnable //不继承类,而是改成了实现接口
{
public void run()
{
for(int i=0;i<20;i++)
{
System.out.println("子函数");
}
}
}
public class L6_2
{
public static void main(String[] args)
{
Xc2 xc2=new Xc2();
Thread a=new Thread(xc2);
a.start();
for(int i=0;i<20;i++)
{
System.out.println("主函数");
}
}
}
两点说明:
1、直接运行.run()方法是直接调用run函数,起不到线程的作用,需要调用start()方法开启一个新的线程去运行这个run函数,即可实现线程的功能
2、如果是用Runnable接口实现方式,主函数里面还要用线程实例去实现接口
Java中线程的实现:的更多相关文章
- java中线程分两种,守护线程和用户线程。
java中线程分为两种类型:用户线程和守护线程. 通过Thread.setDaemon(false)设置为用户线程: 通过Thread.setDaemon(true)设置为守护线程. 如果不设置次属性 ...
- java中线程机制
java中线程机制,一开始我们都用的单线程.现在接触到多线程了. 多线性首先要解决的问题是:创建线程,怎么创建线程的问题: 1.线程的创建: 四种常用的实现方法 1.继承Thread. Thread是 ...
- Java中线程的使用 (2)-多线程、线程优先级、线程睡眠、让步、阻塞
Java中线程的使用 (2)-多线程.线程优先级.线程睡眠.让步.阻塞 (一)多线程使用方法 说明:创建每个新的线程,一定要记得启动每个新的线程(调用.start()方法) class Xc3 ext ...
- JAVA中线程同步方法
JAVA中线程同步方法 1 wait方法: 该方法属于Object的方法,wait方法的作用是使得当前调用wait方法所在部分(代码块)的线程停止执行,并释放当前获得的调用wait所 ...
- 多线程(三) java中线程的简单使用
java中,启动线程通常是通过Thread或其子类通过调用start()方法启动. 常见使用线程有两种:实现Runnable接口和继承Thread.而继承Thread亦或使用TimerTask其底层依 ...
- Java中线程池,你真的会用吗?
在<深入源码分析Java线程池的实现原理>这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理. 在文中有这样一段描述: 可以通过Executors静态工厂构建线程池,但一般不建 ...
- Java中线程同步的理解 - 其实应该叫做Java线程排队
Java中线程同步的理解 我们可以在计算机上运行各种计算机软件程序.每一个运行的程序可能包括多个独立运行的线程(Thread). 线程(Thread)是一份独立运行的程序,有自己专用的运行栈.线程有可 ...
- 沉淀再出发:java中线程池解析
沉淀再出发:java中线程池解析 一.前言 在多线程执行的环境之中,如果线程执行的时间短但是启动的线程又非常多,线程运转的时间基本上浪费在了创建和销毁上面,因此有没有一种方式能够让一个线程执行完自己的 ...
- Java中线程和线程池
Java中开启多线程的三种方式 1.通过继承Thread实现 public class ThreadDemo extends Thread{ public void run(){ System.out ...
随机推荐
- icheck样式绑定与翻页保持
官方文档:http://icheck.fronteed.com/ 使用基本样式 $('input').iCheck({ checkboxClass : 'icheckbox_square-blue', ...
- Ceres Solver for android
最近开发中,需要对图片做一些处理与线性技术,这时就用到了Ceres Solver.如何把Ceres Solver集成到Android里呢? 官网给了一个解决方案,简洁明了: Downloa ...
- iOS 关于js与OC相互调用的那些事
最近项目上使用js调用OC,OC再次调用JS,再次在JS页面上面回显数据. 项目中使用的是WKWebview,加载网路的URL,其实就是使用WK加载出来的H5网页,在项目中用的是H5网页有个识别按钮, ...
- instance 网卡是如何被拉起来的?- 每天5分钟玩转 OpenStack(172)
instance 的网卡是如何被配置并拉起的?这是理解和用好 cloud-init 非常关键的一步.我们先讨论一个最简单基础的场景:镜像中没有安装 cloud-init. 此时 instance 启动 ...
- 老李分享:loadrunne动态查询db2数据库
老李分享:loadrunne动态查询db2数据库 poptest老李认为性能测试脚本开发不仅仅涉及到脚本开发的技术层面,同时也要对一些其他技术有所了解动态链接库的技术,线程安全等等,建议在做下面的 ...
- JavaScript原生Array常用方法
JavaScript原生Array常用方法 在入门Vue时, 列表渲染一节中提到数组的变异方法, 其中包括push(), pop(), shift(), unshift(), splice(), so ...
- Framework7首页隐藏navbar其他页面显示navbar
Framework7首页隐藏navbar其他页面显示navbar 帮别人解决问题,自己也记录一下, 首页.navbar加.navbar-hidden, 首页.page加.no-navbar, 如果首页 ...
- 将1、2、3、……、n这n个连续自然数分成g组,使每组的和相等。g组中个数最多的一组有几个?
<style type="text/css"> #content { width: 600px; margin: 150px auto 0 auto; } dl dd ...
- Java与面向对象之随感(2)
我们知道Java语言的一大特性就是相比于c语言和c++语言,其更加安全.那么Java安全性的一个重要保证就是它取消了指针,并且坚决反对数组的出界(c++对当数组超出上限但是还进行读写操作时允许的!), ...
- C#中的ArrayList
ArrayList非常类似于数组,也有人称它为数组列表,ArrayList可以动态维护 提示: 和数组相似,ArrayList中存储的数据称为元素,ArrayList可以保存的元素数就是ArrayLi ...