`
文章列表
[img] [/img] [img] [/img] 第一、建立发送端。(我这边用的是eclipse) package com.zzl.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostE ...
[img] [/img] [img] [/img] [img] [/img] [img] [/img] package com.zzl.thread; import java.net.InetAddress; import java.net.UnknownHostException; public class NetDemo { public static void main(String[] args) { try { //获取本机的ip地址和计算机名 InetAddress ia ...
调用线程的 toString 方法打印如下: 左边为线程名; 中间为线程的优先级(默认为5) 右边为线程所属的组。 [img] [/img] package com.zzl.thread; /** * 线程的优先级越高,抢占到cpu执行权的几率就越大 * Thread.MAX_PRIORITY = 10 * Thread.MIN_PRIORITY = 1 * Thread.NORM_PRIORITY = 5 * * Thread.yield(); 哪个线程读到 yield()的时候会释放执行权,减少线程执行的频率,达到平均执行效果。 * */ ...
多线程学习------join方法 package com.zzl.thread; /** * join * 当A线程遇到了B线程的.join()方法的时候,A就会等待。等B线程执行完,A线程才会执行。 * * join可以用来临时加入线程执行 */ class JoinRunnable implements Runnable{ @Override public void run() { for(int i = 0;i < 10;i++){ System.out.println(Thread.currentThread().get ...
菜鸟学习线程----------守护线程 package com.zzl.thread; /**setDaemon(boolean b) * 将线程标记为守护线程或用户线程,当正在运行的线程都是守护线程时,java虚拟机退出 * 该方法必须在启动线程前调用 * @author zzl */ class MyRunnable2 implements Runnable{ @Override public void run() { //线程中做的事就是循环打印 while(true){ System.out.println(" ...
package com.zzl.thread; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 线程间通讯-生产者、消费者 jdk5.0升级版 * jdk1.5 中提供了多线程升级解决方案。 * 将同步的 synchronized 替换成显示的 Lock操作。 * 讲Object中的 wait notify notifyAll 替换成C ...
线程间通讯,当有多个生产者、消费者时,容易导致的问题。 一、当只有两个线程,一个生产、一个消费的时候,数据是没有问题的,如下: package com.zzl.thread; class MyResource{ private String name; private int number = 1; private boolean flag = false; public synchronized void set(String name){ if(flag){ try { this.wait(); } catch (Interru ...
线程通讯的优化: package com.zzl.thread; /** * 线程间通讯 * 所谓线程间通讯,即多个线程操作同一资源,但是操作的动作不同。 * 线程间通讯的优化 ,把同步锁、wait、notify 封装在资源类中。 */ class Resource { private String name; private String sex; private boolean flag = false; public synchronized void set(String name, String sex) { ...
如果存一个资源,然后打印一个资源,需要的结果类似如下: mike....man 胖胖胖胖胖胖胖胖....女女女女女女 mike....man 胖胖胖胖胖胖胖胖....女女女女女女 mike....man 胖胖胖胖胖胖胖胖....女女女女女女 mike....man 胖胖胖胖胖胖胖胖....女女女女女女 mike....man 胖胖胖胖胖胖胖胖....女女女女女女 mike....man 胖胖胖胖胖胖胖胖....女女女女女女 mike....man 胖胖胖胖胖胖胖胖....女女女女女女 ...
解决线程间通信的安全问题:同步锁的使用: package com.zzl.thread; /** * 线程间通讯 * 所谓线程间通讯,即多个线程操作同一资源,但是操作的动作不同。 * */ class Resource{ String name; String sex; } class InRunnable implements Runnable{ private Resource r; public InRunnable(Resource r){ this.r = r; } @Override public void ru ...
package com.zzl.thread; /** * 线程间通讯 * 所谓线程间通讯,即多个线程操作同一资源,但是操作的动作不同。 * 下面演示的是线程间通讯出现的问题。 */ class Resouce{ String name; String sex; } class InRunnable implements Runnable{ private Resouce r; public InRunnable(Resouce r){ this.r = r; } @Override public void run() { in ...
package com.zzl.thread; /** * * @author 无敌小神胖 * 死锁练习小题, * 俺是小菜鸟,别喷我, * */ class MyRunable implements Runnable{ private boolean flag = true; public MyRunable(boolean flag){ this.flag = flag; } @Override public void run() { if(flag){ synchronized (MyObject.a) { ...
测试数据: [img] [/img] 一、列的增加: 1,alter table 表名 列声明 增加的列默认在表的最后 [img] [/img] [img] [/img] 2,可以用 after来指定新增的列位于哪些列后面 [img] [/img] 3,如果新增的列要放在表的最前面,用 first [img] [/img] 二、列的修改 alter table 表名 change 要修改的列名 列声明 如表中,name的 varchar长度为10,现在改为20. [img] [/img] [img] [/img] 三、列的删除 : alter t ...
1,创建表:boy并模拟插入几行数据 create table boy( name varchar(10), flower varchar(10) ); insert into boy values ("林书豪","玫瑰"), ("刘翔","桃花"), ("周杰伦","茉莉花"), ("犀利哥","荷花"), ("刘德华","狗尾巴花"); [img] [/img] 2,创 ...
Template模板模式定义: 定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中. 使用Java的抽象类时,就经常会使用到Template模式,因此Template模式使用很普遍.而且很容易理解和使用。 package com.zzl.template; public abstract class Template { public abstract void doSomtThing(); public final long test(int count){ if(count <= 0){ return 0; } ...
Global site tag (gtag.js) - Google Analytics