xml地图|网站地图|网站标签 [设为首页] [加入收藏]

正规赌博平台

当前位置:网上十大正规赌博平台 > 正规赌博平台 > action读书笔记,在前端页面中使用

action读书笔记,在前端页面中使用

来源:http://www.nb-machinery.com 作者:网上十大正规赌博平台 时间:2019-09-21 05:22

方法一:继承Thread类,覆盖方法run(),我们在创建的Thread类的子类中重写run() ,加入线程所要执行的代码即可。

下面是一个例子:

 public class MyThread extends Thread  {   int count= 1, number;   public MyThread(int num)   {    number = num;    System.out.println    ("创建线程 "   number);   }   public void run() {    while(true) {     System.out.println      ("线程 "   number   ":计数 "   count);     if(  count== 6) return;    }  }  public static void main(String args[])  {   for(int i = 0;i 〈 5; i  ) new MyThread(i 1).start();  } }

 

  这种方法简单明了,符合大家的习惯,但是,它也有一个很大的缺点,那就是如果我们的类已经从一个类继承(如小程序必须继承自Applet类),则无法再继承Thread类,这时如果我们又不想建立一个新的类,应该怎么办呢?

  我们不妨来探索一种新的方法:我们不创建Thread类的子类,而是直接使用它,那么我们只能将我们的方法作为参数传递给Thread类的实例,有点类似回调函数。但是Java没有指针,我们只能传递一个包含这个方法的类的实例。

  那么如何限制这个类必须包含这一方法呢?当然是使用接口!(虽然抽象类也可满足,但是需要继承,而我们之所以要采用这种新方法,不就是为了避免继承带来的限制吗?)

  Java提供了接口java.lang.Runnable来支持这种方法。

在前端页面中使用@font-face来显示web自定义字体:

6.3直方图

方法二:实现Runnable接口

  Runnable接口只有一个方法run(),我们声明自己的类实现Runnable接口并提供这一方法,将我们的线程代码写入其中,就完成了这一部分的任务。但是Runnable接口并没有任何对线程的支持,我们还必须创建Thread类的实例,这一点通过Thread类的构造函数public Thread(Runnable target);来实现。下面是一个例子:

  

public class MyThread implements Runnable  {   int count= 1, number;   public MyThread(int num)   {    number = num;    System.out.println("创建线程 "   number);   }   public void run()   {    while(true)    {     System.out.println     ("线程 "   number   ":计数 "   count);     if(  count== 6) return;    }   }   public static void main(String args[])   {    for(int i = 0; i 〈 5;i  ) new Thread(new MyThread(i 1)).start();   }  }

  

  严格地说,创建Thread子类的实例也是可行的,但是必须注意的是,该子类必须没有覆盖Thread类的run方法,否则该线程执行的将是子类的run方法,而不是我们用以实现Runnable接口的类的run方法,对此大家不妨试验一下。

  使用Runnable接口来实现多线程使得我们能够在一个类中包容所有的代码,有利于封装,它的缺点在于,我们只能使用一套代码,若想创建多个线程并使各个线程执行不同的代码,则仍必须额外创建类,如果这样的话,在大多数情况下也许还不如直接用多个类分别继承Thread来得紧凑。

本文转自W3CPLUS的《CSS @font-face》

hist()

3、使用ExecutorService、Callable、Future实现有返回结果的多线程

ExecutorService、Callable、Future这个对象实际上都是属于Executor框架中的功能类。想要详细了解Executor框架的可以访问

可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。执行Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable任务返回的Object了,再结合线程池接口ExecutorService就可以实现传说中有返回结果的多线程了。下面提供了一个完整的有返回结果的多线程测试例子,在JDK1.5下验证过没问题可以直接使用。代码如下:

import java.util.concurrent.*;  import java.util.Date;  import java.util.List;  import java.util.ArrayList;      @SuppressWarnings("unchecked")  public class Test {  public static void main(String[] args) throws ExecutionException,      InterruptedException {     System.out.println("----程序开始运行----");     Date date1 = new Date();       int taskSize = 5;     // 创建一个线程池     ExecutorService pool = Executors.newFixedThreadPool;     // 创建多个有返回值的任务     List list = new ArrayList();     for (int i = 0; i < taskSize; i  ) {      Callable c = new MyCallable(i   " ");      // 执行任务并获取Future对象      Future f = pool.submit;      // System.out.println(">>>"   f.get().toString;      list.add;     }     // 关闭线程池     pool.shutdown();       // 获取所有并发任务的运行结果     for (Future f : list) {      // 从Future对象上获取任务的返回值,并输出到控制台      System.out.println(">>>"   f.get().toString;     }       Date date2 = new Date();     System.out.println("----程序结束运行----,程序运行时间【"         (date2.getTime() - date1.getTime");  }  }    class MyCallable implements Callable {  private String taskNum;    MyCallable(String taskNum) {     this.taskNum = taskNum;  }    public Object call() throws Exception {     System.out.println(">>>"   taskNum   "任务启动");     Date dateTmp1 = new Date();     Thread.sleep(1000);     Date dateTmp2 = new Date();     long time = dateTmp2.getTime() - dateTmp1.getTime();     System.out.println(">>>"   taskNum   "任务终止");     return taskNum   "任务返回运行结果,当前任务时间【"   time   "毫秒】";  }  }  

代码说明:
上述代码中Executors类,提供了一系列工厂方法用于创先线程池,返回的线程池都实现了ExecutorService接口。

public static ExecutorService newFixedThreadPool(int nThreads)
创建固定数目线程的线程池。

public static ExecutorService newCachedThreadPool()
创建一个可缓存的线程池,调用execute将重用以前构造的线程。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有60秒钟未被使用的线程。

public static ExecutorService newSingleThreadExecutor()
创建一个单线程化的Executor。

网上十大正规赌博平台,public static ScheduledExecutorServicenewScheduledThreadPool(int corePoolSize)
创建一个支持定时及周期性的任务执行的线程池,多数情况下可用来替代Timer类。

ExecutoreService提供了submit()方法,传递一个Callable,或Runnable,返回Future。如果Executor后台线程池还没有完成Callable的计算,这调用返回Future对象的get()方法,会阻塞直到计算完成。

综上所述,以上方法各有千秋,大家可以灵活运用。更多Java面试题全集和Java技术干货分享,请点击上海尚学堂官网获取,还有Java300集等Java学习视频可以领取。

@font-face是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中,随着@font-face模块的出现,我们在Web的开发中使用字体不怕只能使用Web安全字体,你们当中或许有许多人会不自然的问,这样的东西IE能支持吗?当我告诉大家@font-face这个功能早在IE4就支持了你肯定会感到惊讶。我的Blog就使用了许多这样的自定义Web字体,比如说首页的Logo,Tags以及页面中的手写英文体,很多朋友问我如何使用,能让自己的页面也支持这样的自定义字体,一句话这些都是@font-face实现的,为了能让更多的朋友知道如何使用他,今天我主要把自己的一点学习过程贴上来和大家分享。

其中的x是一个由数据值组成的数值向量。参数freq=FALSE表示根据概率密度而不是频数绘制图形。参数breaks用于控制组的数量。在定义直方图中的单元时,默认将生成等距切分。

首先我们一起来看看@font-face的语法规则:

par(mfrow=c(2,2))

   @font-face {      font-family: <YourWebFontName>;      src: <source> [<format>][,<source> [<format>]]*;      [font-weight: <weight>];      [font-style: <style>];    }

hist(mtcars$mpg)#简单直方图

取值说明

hist(mtcars$mpg#指定组数和颜色

1、YourWebFontName:此值指的就是你自定义的字体名称,最好是使用你下载的默认字体,他将被引用到你的Web元素中的font-family。如“font-family:"YourWebFontName";”

breaks=12,

2、source:此值指的是你自定义的字体的存放路径,可以是相对路径也可以是绝路径;

col="red",

3、format:此值指的是你自定义的字体的格式,主要用来帮助浏览器识别,其值主要有以下几种类型:truetype,opentype,truetype-aat,embedded-opentype,avg等;

xlab="Miles Per Gallon",

4、weight和style:这两个值大家一定很熟悉,weight定义字体是否为粗体,style主要定义字体样式,如斜体。

main="Colored histogram wi七h 12 bins”

兼容浏览器

hist(mtcars$mpg#添加轴须图

网上十大正规赌博平台 1

freq=FALSE,

说到浏览器对@font-face的兼容问题,这里涉及到一个字体format的问题,因为不同的浏览器对字体格式支持是不一致的,这样大家有必要了解一下,各种版本的浏览器支持什么样的字体,前面也简单带到了有关字体的几种格式,下面我就分别说一下这个问题,让大家心里有一个概念:

breaks=12,

一、TureTpe格式:

col=”red",

.ttf字体是Windows和Mac的最常见的字体,是一种RAW格式,因此他不为网站优化,支持这种字体的浏览器有【IE9 ,Firefox3.5 ,Chrome4 ,Safari3 ,Opera10 ,iOS Mobile Safari4.2 】;

xlab="Miles Per Gallon",

二、OpenType格式:

main="His七ogram, rug plo七,densi七y curve"

.otf字体被认为是一种原始的字体格式,其内置在TureType的基础上,所以也提供了更多的功能,支持这种字体的浏览器有【Firefox3.5 ,Chrome4.0 ,Safari3.1 ,Opera10.0 ,iOS Mobile Safari4.2 】;

rug(jitter(mtcars$mpg))

三、Web Open Font Format格式:

lines(density(mtcars字mpg),col="blue",lwd=2)

.woff字体是Web字体中最佳格式,他是一个开放的TrueType/OpenType的压缩版本,同时也支持元数据包的分离,支持这种字体的浏览器有【IE9 ,Firefox3.5 ,Chrome6 ,Safari3.6 ,Opera11.1 】;

x<一mtcars$mpg#添加正态密度曲线和外框

四、Embedded Open Type格式:

h<-hist(x,

.eot字体是IE专用字体,可以从TrueType创建此格式字体,支持这种字体的浏览器有;

breaks=12,

五、SVG格式:

col=”red",

.svg字体是基于SVG字体渲染的一种格式,支持这种字体的浏览器有【Chrome4 ,Safari3.1 ,Opera10.0 ,iOS Mobile Safari3.2 】。

xlab="Mfiles Per Gallon"

这就意味着在@font-face中我们至少需要.woff,.eot两种格式字体,甚至还需要.svg等字体达到更多种浏览版本的支持。

main="Histogramwith normal curve and box"

为了使@font-face达到更多的浏览器支持,Paul Irish写了一个独特的@font-face语法叫Bulletproof @font-face:

xfit<一seq,max,length=40)

   @font-face {font-family: 'YourWebFontName';src: url('YourWebFontName.eot?') format('eot');/*IE*/src:url('YourWebFontName.woff') format('woff'), url('YourWebFontName.ttf') format('truetype');/*non-IE*/   }

yfit<-dnorm(xfit, mean=mean,sd=sd

但为了让各多的浏览器支持,你也可以写成:

yfit<一yfitdiff(h$mids[1:2])*length*

   @font-face {font-family: 'YourWebFontName';src: url('YourWebFontName.eot'); /* IE9 Compat Modes */src: url('YourWebFontName.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */             url('YourWebFontName.woff') format('woff'), /* Modern Browsers */             url('YourWebFontName.ttf')  format('truetype'), /* Safari, Android, iOS */             url('YourWebFontName.svg#YourWebFontName') format('svg'); /* Legacy iOS */   }

lines(xfit, yfit, col="blue",lwd=2)

说了这么多空洞的理论知识,大家一定有点心痒痒了,那么我们先来看看W3CPLUS首页中导航部分的兰色字体是如何实现的,假如我们有一个这样的DOM标签,需要应用自定义字体:

box()

HTML Code:

网上十大正规赌博平台 2

   <h2 class="neuesDemo">Neues Bauen Demo</h2>

6.4核密度图

通过@font-face来定义自己的Web Font:

核密度估计是用于估计随机变量概率密度函数的一种非参数方法。绘制密度图的方法(不叠加到另一幅图上方)为: plot(density 其中的x是一个数值型向量。

  @font-face {    font-family: 'NeuesBauenDemo';    src: url('../fonts/neues_bauen_demo-webfont.eot');    src: url('../fonts/neues_bauen_demo-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/neues_bauen_demo-webfont.woff') format('woff'), url('../fonts/neues_bauen_demo-webfont.ttf') format('truetype'), url('../fonts/neues_bauen_demo-webfont.svg#NeuesBauenDemo') format('svg');    font-weight: normal;    font-style: normal;  }

par(mfrow=c(2,1))

本文由网上十大正规赌博平台发布于正规赌博平台,转载请注明出处:action读书笔记,在前端页面中使用

关键词: gpk老虎机

上一篇:iOS项目架构,iOS脚本打包和持续集成

下一篇:没有了