自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

small__snail__5的博客

个人成长笔记不做商业用途

  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 线程的让位yield与合并join

//这里要知道yield是一个静态让位方法,什么意思呢?当有两个优先级相同的线程时可以通过yield给另一个线程让位,你可以自定义让位的条件,但是让位的时间是不确定的,定义了让为条件后在该条件下一定会让位但同样有可能在其他条件下也会让位,下面是代码,当一个数能整出20时便让位给主线程,这个条件是一定会执行的,但是并不意味着一定是20的整数倍才让位。见代码:package ThreadTest...

2018-07-31 15:27:49 305

原创 终止一个简单线程的方法

//下面代码是在5秒后终止线程,通过一个实现Runnable接口的类的对象的成员变量控制线程的运行,见代码:package ThreadTest;class Processor08 implements Runnable{ public boolean flag = true; @Override public void run() { // TODO Auto-gener...

2018-07-31 14:39:07 219

原创 线程静态方法sleep()详解以及唤醒线程方法interrupt

//java多线程中的sleep方法,这是一个手动给线程加阻塞的一个方法,当调用sleep方法后线程从运行到阻塞等阻塞时间过后到就绪状态。sleep是一个静态方法因此直接通过Thread调用他与线程对象名无关。//下面代码中有一个注意点:在main方法中有一句t1.sleep(2000),是t1线程启动后2s才运行吗?不是,这里就要注意因为sleep是一个静态方法,因此和线程对象是无关的,要看...

2018-07-31 10:26:01 8603

原创 java多线程给线程设置优先级

//给线程设置优先级,那么优先极高的相对来说获得时间片就更容易,但不绝对,一般情况是在所有线程都会被执行的情况下,会先执行优先极高的线程,但事无绝对。package ThreadTest;class Processor05 implements Runnable{ @Override public void run() { // TODO Auto-generated metho...

2018-07-31 09:30:24 3496

原创 线程的调度与控制

通常我们的计算机只有一个cpu,cpu在某个时刻只能执行一条指令,线程只有得到cpu时间片也就是使用权,才可以执行指令。在单个cpu的机器上线程并不是并行运行的,只有多个cpu上线程才可以运行。java虚拟机要负责线程的调度,取得cpu的使用权,目前有两种调度模式:分时调度模式和抢占调度模式,java属于抢占调度模式。分时调度模式:所有线程轮流使用cpu的试用权,平均分配每个线程占用cpu时间...

2018-07-30 18:38:10 288

原创 java线程的生命周期(图解)

一般在就绪和运行状态之间切换时,每次的运行在上次运行之后继续运行,而不是获得时间片后从新运行 

2018-07-30 17:50:55 2052 1

原创 关于主线程和其他线程之间的关于栈内存的一些问题(含图解)

//首先要明确java程序的运行原理:java命令调用虚拟机,此时虚拟机相当于一个应用程序,该程序启动主线程,主线程调用某个类的main方法。//其次明确一个线程一个栈内存//所以在下面的代码中有两个线程一个是主线程,一个是t线程,t.start()启动线程后告诉jvm分配一块儿栈内存,也就是此时有两块儿栈内存,一块儿是主线程的栈内存,一块儿是t线程的栈内存。即使当main方法运行完毕,程...

2018-07-30 17:21:55 1099

原创 关于java多线程的一些知识

进程:一个进程对应一个应用程序。多进程的作用:多进程不是提高cpu的处理速度,而是提高cpu的使用率,当然对于多核处理器。进程与进程之间的内存是独立的。线程:进程的一个执行场景,一个进程可以启动多个线程。多线程的作用:多线程是提高应用程序的使用率的。线程和线程共享堆内存和方法区的内存,栈内存独立,一个线程一个栈。java程序运行的原理:java命令会启动虚拟机,此时虚拟机相...

2018-07-30 16:48:49 104

原创 java死锁

//继上篇文章java中多线程同步函数this锁的证明以及静态同步函数的锁之后,这里写一个多线程的死锁,思路是每个线程总共用两把锁,开始时第一个线程用第一把锁紧接着用第二把锁,第二个线程用第二把锁然后紧接着用第一把锁,这样但凡有一个线程没有释放锁,此时程序就产生了死锁。见代码:package Thread01;class Thread02 implements Runnable{ ...

2018-07-29 17:00:49 162

原创 java中多线程同步函数this锁的证明以及静态同步函数的锁

//首先是对多线程this锁的证明,这里是看大牛博客的然后自己理解了的学习笔记,这里模拟两个窗口进行车票的售卖,当两个窗口对同一资源车票在竞争过程中产生的同步问题,因此通过加锁解决数据安全问题,代码中若将sale1中的synchronized中的this锁换为obj也就是再类中的域定义的锁的时候会出现数据安全问题。//如何证明:对于两个线程,同时启动,一个线程使用同步函数,另一个使用同步代码块...

2018-07-29 11:51:35 756

原创 java通过静态内部类获取随机生成数组中最大值和最小值

//在主函数中生成一个double数组,在类中对其最大值最小值进行筛选,然后通过静态内部类中的get方法获取到最大最小值,完全的面向对象考虑。package static_class;class MaxMin{ public static class Result{ private double min; private double max; public Resu...

2018-07-28 16:12:21 1379

原创 关于java对象的假克隆,浅克隆,深克隆

//java中对于基本类型可以使用“=”进行克隆,此时两个变量除了相等没有其他联系。对于引用类型不能通过简单的“=”进行克隆。这因为java内存空间的试用有关。//java将内存分为栈和堆。栈中是基本类型和应用类型。堆中保存对象。栈中变量用后会立即回收,对象有虚拟机进行管理,回收时间有不确定性。这里要知道一个引用是可以指向一个对象的,注意引用是可以用“=”克隆的,但是这里克隆的是引用不是对象。...

2018-07-27 11:56:34 287

原创 java汉诺塔递归算法

//规则:有A,B,C三个柱子,在A柱子上有n个圆盘从小到大摞起来,要求每次移动一个圆盘,最终将所有圆盘按照从小到大移动到C柱子上,每次大的不能压小的。//思路:若f(n)->C,则f(n-1)->B,f(n-2)->C,f(n-3)->B,以此类推可以推出f(1)首先去哪个柱子。那么每当确定一个柱子那么下一个柱子位置也确定,加入f(1)->C,那么f(2)-&g...

2018-07-16 16:43:53 2071

原创 java单例模式的应用

//要保证一个类仅有一个实例,就需要其他的类不能实例化该类,即构造方法要使用private修饰,同时类中提供静态方法,改方法的返回值是该类的一个实例,这样就能保证唯一性。//单例模式好处可以控制对象的数量从而节约资源,如数据库的连接池就使用单例模式创建。package EmperorTest;public class EmperorTest { public static void mai...

2018-07-16 10:57:24 484

原创 java中的equals方法与==适用范围

//对于==这个在学c++时就知道这是比较内存首地址的,也就是判断两个变量若内存首地址相同那么他们的值必然相同。而如果定义对象则不然,如下面代码中:String s = new String("123"); String ss = new String("123");这两个相当于是两个对象,那么此时这两个对象就是两块儿内存地址的引用,因此如果直接通过 s == ss这样比较内存首地址那肯定不同,对...

2018-07-15 11:01:46 476

原创 java中的方法和实例变量被static修饰后的不同

//static修饰后的类中的实例变量也叫做类变量在加载类的时候就对其进行加载,所有对象共有的变量。调用时可以直接通过类名调用,被static修饰的方法同样如此,因此调用的多的公共实例变量和方法可以用static修饰package java_static_s;public class java_static_s { private String name; static String s...

2018-07-15 09:18:40 668

原创 python中yield简单理解(斐波那契数列)

###对于yield通过下面一段代码做一个简单描述:#python3def fib(n): cnt = 1 a,b = 0,1 while cnt <= 10: cnt += 1 yield b a, b = b, a+bfor i in fib(10): print(i)这是一段前n个斐波那契数列的代码,...

2018-07-03 21:08:17 1494

我的搜索题记整理

最经典的搜索题目及答案

2016-10-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除