注解,多线程

//博主太赖了,并没有提供范例程序

四个元注解类型

@Target

指定被其修饰的注解能用于修饰那些程序元素

成员变量value为ElementType

@Retention

指定该注解可使用反射读取

成员变量value:RetentionPolicy枚举类型

@Documented

指定被其修饰的注解江北javaDoc工具提取成文档

@Inherited

指定被其修饰的注解将具有继承性

1、元注解:用来修饰注解的注解

2、自定义注解:

(1)语法:public @interface 注解名{

数据类型 变量名() default 默认值;//成员变量

}

示例:public @interface AgeAno{

Int age() default 19;

}

(2)限定自定义注解可以修饰哪些元素:

@Target(ElementType.METHOD);//指定注解从来休息方法

@Retention(RetentionPolicy.RUNTIME)//运行期间注解可以被反射

Public @interface 注解名{}

注:自定义注解中的成员变量需要给定初始值,吐过不给定,则调用时必须给定

3、线程和进程:

(1)一个进程至少包含一个线程(单线程),进程可以包含多个线程(多线程)

(2)单线程特点就是:依次执行,比如:main方法

4、现成的实现方式

(1)继承Thread类

//1、继承Thread类

//2、重写run()方法,方法体就是线程要做的事情

//3、启动线程,创建Thread子类的对象,调用start()方法

(2)实现方式:实现Runnable接口

<1>实现Runnable接口

<2>重写run()方法

<3>启动线程

注:启动线程时,创建Thread对象,将实现类对象作为参数传入

Thread t = new Thread(new 实现类());

T.start();

练习:使用两种创建线程的方式,实现输出1-100之间的偶数

5、线程的生命周期

四个状态:新生状态,可运行状态,阻塞状态,死亡状态

6、设置优先级

(1)设置优先级:setPriority(优先级)

优先级的值:1-10,默认是5,最高级:1

示例:线程对象.setPriority(1);

注:线程优先级最终决定于计算机分配

(2)join(毫秒);阻塞指定的线程等到另一个线程完成以后再继续执行

类似于插队操作

(3)让线程睡眠:sleep(毫秒数)

当前线程在指定毫秒内停止执行儿转入不可运行状态

注:join方法需要使用线程类的对象调用

Sleep方法使用Thread调用即可(静态方法)

(4)yield():当前线程转入暂时停止运行的状态

对比:sleep和yield方法

Sleep  yield

进入状态  阻塞状态 暂时停止状态

无其他线程时 休眠完毕后执行 回复自身线程

有其他线程时 休眠完毕后,其他线程机会均等 优先级相等或更高的线程

相同点 让线程暂时停止运行

时间: 2024-10-08 17:52:55

注解,多线程的相关文章

JavaSE 教程的选择

你好 我是大福 你现在看的是大福笔记 又降温了 下点小雨 出门有点冷 走路到公司20多分钟,又走的有点热 昨天说到了,今年的计划是从零开始重新学习并梳理下这两年学习和接触到的技术 那么今天开始第一个知识点JavaSE的学习 学习之前的首要任务是选择教程 关于Java的书籍好多,下图是现在手上已买的书籍,也算买了不少(全部看完的基本没有) 其中那本[Java编程思想]还是低价收购来的二手的(那时没钱,然后大家都说这本书是Java的圣经) 不过今天并不想选择其中一本作为学习的教材.个人比较懒,还是比

Spring多线程

Spring是通过TaskExecutor任务执行器来实现多线程和并发编程的.使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor.而实际开发中任务一般是非阻碍的,即异步的,所以我们要在配置类中通过@EnableAsync开启对异步的支持,并通过在实际执行的Bean的方法中使用@Async注解来声明其是一个异步任务. 实例代码: (1)配置类 package com.lwh.highlight_spring4.ch3.taskexecutor; /**

synchronized与static synchronized 的差别、synchronized在JVM底层的实现原理及Java多线程锁理解

本Blog分为例如以下部分: 第一部分:synchronized与static synchronized 的差别 第二部分:JVM底层又是怎样实现synchronized的 第三部分:Java多线程锁,源码剖析 第一部分:synchronized与static synchronized的差别 1.synchronized与static synchronized 的差别 synchronized是对类的当前实例进行加锁,防止其它线程同一时候訪问该类的该实例的全部synchronized块.注意这里

【Linux】多进程与多线程之间的区别

http://blog.csdn.net/byrsongqq/article/details/6339240 网络编程中设计并发服务器,使用多进程与多线程 ,请问有什么区别?  答案一: 1,进程:子进程是父进程的复制品.子进程获得父进程数据空间.堆和栈的复制品. 2,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列. 两者都可以提高程序的并发度,提高程序运行效率和响应时间. 线程和进程在使用上各有优缺点:线程执行开

(转)spring boot注解 [email&#160;protected] 异步调用

原文:http://www.cnblogs.com/azhqiang/p/5609615.html EnableAsync注解的意思是可以异步执行,就是开启多线程的意思.可以标注在方法.类上. 1 @Component 2 public class Task { 3 4 @Async 5 public void doTaskOne() throws Exception { 6 // 同上内容,省略 7 } 8 9 @Async 10 public void doTaskTwo() throws

spring 注解 事务,声明事务共存的情况下,先后顺序

最近在项目中,因为已配置全局声明式事务.不知道是否本来就配得有问题,导致一个多线程插入的方法会因为连接池不够用而导致失败. 就打算试试用注解式事务,然后发现不起作用,就想是不是嵌套事务的问题.然后找到这个哥们的文章,就解决了问题.这里转载一份 转载:http://blog.csdn.net/jeep_ouc/article/details/43056977 COME FROM 首先先看配置文件: <!-- hibernate --> <bean id="sessionFacto

synchronized与static synchronized 的区别、synchronized在JVM底层的实现原理及Java多线程锁理解

本Blog分为如下部分: 第一部分:synchronized与static synchronized 的区别 第二部分:JVM底层又是如何实现synchronized的 第三部分:Java多线程锁,源代码剖析 第一部分:synchronized与static synchronized的区别 1.synchronized与static synchronized 的区别 synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是"类

为什么说 2017 年你必须要学习 Go 了(多核,网络,多人协作,简单非OO,没有注解,Native,垃圾收集,代码优雅),附两个评论

为什么要学习Go Go是未来的服务端语言—?Tobias Lütke, Shopify.在过去的几年中,Golang逐步流行起来. 还有什么能比一门新语言让码农们疯狂呢? 因此,我开始学习了一段时间Golang,在这里我将告诉你为什么你也应该学习这种新语言. 在本文里我不会告诉你怎么写hello world. 我要分析计算机硬件软件的当前阶段,以解释为什么我们需要像Go这样的新语言? 硬件限制 摩尔定律正在失效 第一个具有3.0GHz时钟速度的Pentium 4处理器是由英特尔于2004年推出的

ios多线程和进程的区别(转载)

本文转载至  http://daimajishu.iteye.com/blog/1557076 很想写点关于多进程和多线程的东西,我确实很爱他们.但是每每想动手写点关于他们的东西,却总是求全心理作祟,始终动不了手. 今天终于下了决心,写点东西,以后可以再修修补补也无妨. 一.为何需要多进程(或者多线程),为何需要并发? 这个问题或许本身都不是个问题.但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性. 我想,只要你不是整天都写那种int main()到底的代码的人,那