当前位置: 首页 > news >正文

seo建站是什么成都微信网站开发

seo建站是什么,成都微信网站开发,企业logo设计含义,一流的品牌网站建设转发:https://www.cnblogs.com/nwnu-daizh/p/8036156.html 以下内容整理自#xff1a;http://blog.csdn.net/wtyvhreal/article/details/44176369 线程#xff1a;是指进程中的一个执行流程。 线程与进程的区别#xff1a;每个进程都需要操作系统为其分配独立的内存地址空…转发:https://www.cnblogs.com/nwnu-daizh/p/8036156.html 以下内容整理自http://blog.csdn.net/wtyvhreal/article/details/44176369 线程是指进程中的一个执行流程。  线程与进程的区别每个进程都需要操作系统为其分配独立的内存地址空间而同一进程中的所有线程在同一块地址空间中工作这些线程可以共享同一块内存和系统资源。 Java实现多线程的方法有两种一是继承Thread类、二是实现Runnable接口。 一、继承Thread类 public class ThreadTest extends Thread {Overridepublic void run() {System.out.println(this thread name is:Thread.currentThread().getName());}/*** param args*/public static void main(String[] args) {ThreadTest t new ThreadTest();t.setName(myTestThread);t.start();}} 继承Thread后需要覆盖run()来实现自己的业务逻辑一个线程的启动是调用start方法而不是run方法当给线程设置名称的时候就可以得到设置的线程名称。 二、实现Runnable接口 public class RunnableTest implements Runnable {Overridepublic void run() {System.out.println(this thread name is:Thread.currentThread().getName());}public static void main(String[] args) {System.out.println(Thread.currentThread().getName());RunnableTest r new RunnableTest();Thread t new Thread(r);t.start();} } 或者是使用匿名类执行实现 Thread thread new Thread(new Runnable() {public void run() {// TODO Auto-generated method stubSystem.out.println(匿名类实现线程);}}); 实现Runnable接口需要实现run方法在run方法里面实现自己的业务逻辑实现Runnable接口的类自己不能启动线程需要将此类的对象传递给Thread由Thread的start方法启动。main函数是java运行启动的入口它是由一个name叫main线程调用的如果一个线程没有专门设置名称程序会默认的将名称设置为Thread-numnum是从0开始累加的数字。三、线程的状态转换 当一个线程执行了start方法后不代表这个线程就会立即被执行只代表这个线程处于可运行的状态最终由OS的线程调度来决定哪个可运行状态下的线程被执行。一个线程一次被选中执行是有时间限制的这个时间段叫做CPU的时间片当时间片用完但线程还没有结束时这个线程又会变为可运行状态等待OS的再次调度在运行的线程里执行Thread.yeild()方法同样可以使当前线程变为可运行状态。在一个运行中的线程等待用户输入、调用Thread.sleep()、调用了其他线程的join()方法则当前线程变为阻塞状态。阻塞状态的线程用户输入完毕、sleep时间到、join的线程结束则当前线程由阻塞状态变为可运行状态。运行中的线程调用wait方法此线程进入等待队列。运行中的线程遇到synchronized同时没有拿到对象的锁标记、等待队列的线程wait时间到、等待队列的线程被notify方法唤醒、有其他线程调用notifyAll方法则线程变成锁池状态。锁池状态的线程获得对象锁标记则线程变成可运行状态。运行中的线程run方法执行完毕或main线程结束则线程运行结束。四、线程同步各个方法的区别 Thread.yield()当前运行的线程变成可运行状态。t2.join() 使得当前线程处于阻塞状态直到t2线程执行完毕。Thread.sleep()使得当前线程处于阻塞状态直到sleep的时间结束。wait、notify、notifyAll方法是Object类的方法其调用环境必须有synchronized的同步块中调用否则会抛java.lang.IllegalMonitorStateException异常。五、线程池 多线程技术主要解决处理器单元内多个线程执行的问题它可以显著减少处理器单元的闲置时间增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为T1 创建线程时间T2 在线程中执行任务的时间T3 销毁线程时间。 如果T1 T3 远大于 T2则可以采用线程池以提高服务器性能。 一个线程池包括以下四个基本组成部分1、线程池管理器ThreadPool用于创建并管理线程池包括 创建线程池销毁线程池添加新任务 2、工作线程PoolWorker线程池中线程在没有任务时处于等待状态可以循环的执行任务 3、任务接口Task每个任务必须实现的接口以供工作线程调度任务的执行它规定了任务的入口任务执行完后的收尾工作任务的执行状态等 4、任务队列taskQueue用于存放没有处理的任务。提供一种缓冲机制。 线程池技术关注如何缩短或调整T1,T3时间的技术从而提高服务器程序性能。它把T1T3分别安排在服务器程序的启动和结束的时间段或者一些空闲的时间段这样在服务器程序处理客户请求时不会有T1T3的开销了。线程池不仅调整T1,T3产生的时间段而且它还显著减少了创建线程的数目看一个例子         假设一个服务器一天要处理50000个请求并且每个请求需要一个单独的线程完成。在线程池中线程数一般是固定的所以产生线程总数不会超过线程池中线程的数目而如果服务器不利用线程池来处理这些请求则线程总数为50000。一般线程池大小是远小于50000。所以利用线程池的服务器程序不会为了创建50000而在处理请求时浪费时间从而提高效率。 线程调度模型分时调度模型和抢占式调度模型 。JVM采用抢占式调度模型。 所谓的多线程的并发运行其实是指宏观上看各个线程轮流获得CPU的使用权分别执行各自的任务。 线程的调度不是跨平台它不仅取决于java虚拟机它还依赖于操作系统 如果希望明确地让一个线程给另外一个线程运行的机会可以采取以下的办法之一 1、 调整各个线程的优先级 2、 让处于运行状态的线程调用Thread.sleep()方法 3、 让处于运行状态的线程调用Thread.yield()方法 4、 让处于运行状态的线程调用另一个线程的join()方法 调整各个线程的优先级 Thread类的setPriority(int)和getPriority()方法分别用来设置优先级和读取优先级。 如果希望程序能够移值到各个操作系统中应该确保在设置线程的优先级时只使用MAX_PRIORITY、NORM_PRIORITY、MIN_PRIORITY这3个优先级。 线程睡眠当线程在运行中执行了sleep()方法时它就会放弃CPU转到阻塞状态。 线程让步当线程在运行中执行了Thread类的yield()静态方法时如果此时具有相同优先级的其它线程处于就绪状态那么yield()方法将把当前运行的线程放到运行池中并使另一个线程运行。如果没有相同优先级的可运行线程则yield()方法什么也不做。 Sleep()方法和yield()方法都是Thread类的静态方法都会使当前处于运行状态的线程放弃CPU把运行机会让给别的线程两者的区别在于1、sleep()方法会给其他线程运行的机会而不考虑其他线程的优先级因此会给较低线程一个运行的机会yield()方法只会给相同优先级或者更高优先级的线程一个运行的机会。 2、当线程执行了sleep(long millis)方法后将转到阻塞状态参数millis指定睡眠时间当线程执行了yield()方法后将转到就绪状态。 3、sleep()方法声明抛出InterruptedException异常而yield()方法没有声明抛出任何异常 4、sleep()方法比yield()方法具有更好的移植性 等待其它线程的结束join() 当前运行的线程可以调用另一个线程的 join()方法当前运行的线程将转到阻塞状态直到另一个线程运行结束它才恢复运行。 定时器Timer:在JDK的java.util包中提供了一个实用类Timer, 它能够定时执行特定的任务。 线程的同步原子操作根据Java规范对于基本类型的赋值或者返回值操作是原子操作。但这里的基本数据类型不包括long和double, 因为JVM看到的基本存储单位是32位而long 和double都要用64位来表示。所以无法在一个时钟周期内完成。 自增操作不是原子操作因为它涉及到一次读和一次写。原子操作由一组相关的操作完成这些操作可能会操纵与其它的线程共享的资源为了保证得到正确的运算结果一个线程在执行原子操作其间应该采取其他的措施使得其他的线程不能操纵共享资源。 同步代码块为了保证每个线程能够正常执行原子操作Java引入了同步机制具体的做法是在代表原子操作的程序代码前加上synchronized标记这样的代码被称为同步代码块。 同步锁每个JAVA对象都有且只有一个同步锁在任何时刻最多只允许一个线程拥有这把锁。 当一个线程试图访问带有synchronized(this)标记的代码块时必须获得 this关键字引用的对象的锁在以下的两种情况下当前线程有着不同的命运。 1、 假如这个锁已经被其它的线程占用JVM就会把这个线程放到本对象的锁池中。本线程进入阻塞状态。锁池中可能有很多的线程等到其他的线程释放了锁JVM就会从锁池中随机取出一个线程使这个线程拥有锁并且转到就绪状态。 2、 假如这个锁没有被其他线程占用本线程会获得这把锁开始执行同步代码块。 一般情况下在执行同步代码块时不会释放同步锁但也有特殊情况会释放对象锁 如在执行同步代码块时遇到异常而导致线程终止锁会被释放在执行代码块时执行了锁所属对象的wait()方法这个线程会释放对象锁进入对象的等待池中 线程同步的特征 1、如果一个同步代码块和非同步代码块同时操作共享资源仍然会造成对共享资源的竞争。因为当一个线程执行一个对象的同步代码块时其他的线程仍然可以执行对象的非同步代码块。所谓的线程之间保持同步是指不同的线程在执行同一个对象的同步代码块时因为要获得对象的同步锁而互相牵制 2、 每个对象都有唯一的同步锁 3、 在静态方法前面可以使用synchronized修饰符。 4、 当一个线程开始执行同步代码块时并不意味着必须以不间断的方式运行进入同步代码块的线程可以执行Thread.sleep()或者执行Thread.yield()方法此时它并不释放对象锁只是把运行的机会让给其他的线程。 5、 Synchronized声明不会被继承如果一个用synchronized修饰的方法被子类覆盖那么子类中这个方法不在保持同步除非用synchronized修饰。 线程安全的类 1、 这个类的对象可以同时被多个线程安全的访问。 2、 每个线程都能正常的执行原子操作得到正确的结果。 3、 在每个线程的原子操作都完成后对象处于逻辑上合理的状态。 释放对象的锁 1、 执行完同步代码块就会释放对象的锁 2、 在执行同步代码块的过程中遇到异常而导致线程终止锁也会被释放 3、 在执行同步代码块的过程中执行了锁所属对象的wait()方法这个线程会释放对象锁进入对象的等待池。 死锁 当一个线程等待由另一个线程持有的锁而后者正在等待已被第一个线程持有的锁时就会发生死锁。JVM不监测也不试图避免这种情况因此保证不发生死锁就成了程序员的责任。 避免死锁 一个通用的经验法则是当几个线程都要访问共享资源A、B、C 时保证每个线程都按照同样的顺序去访问他们。 线程通信 Java.lang.Object类中提供了两个用于线程通信的方法 1、 wait():执行了该方法的线程释放对象的锁JVM会把该线程放到对象的等待池中。该线程等待其它线程唤醒 2、 notify():执行该方法的线程唤醒在对象的等待池中等待的一个线程JVM从对象的等待池中随机选择一个线程把它转到对象的锁池中
http://wiki.neutronadmin.com/news/299477/

相关文章:

  • 兰州网站设计最佳效果网站不设置关键词描述
  • 门户网站建设的企业长沙专业网站建设公司排名
  • 网站开发什么叫前端后端推广公司哪家好
  • 网盟官方网站新闻头条最新消息摘抄
  • 百度做网站电话多少建设银行官方网站入口
  • 深圳网站建设公司小江WordPress cdn缓存哪些
  • 广东省建设厅官方网站网址中学生在哪里学编程最好
  • 品牌网站设计制作哪家好vultr 搭建wordpress
  • 太原网站制作维护seo网站关键词排名快速
  • 最简单的网站开发软件电子商务网站建设和推广论文
  • 微信生活门户网站源码网页托管网站
  • 珠海教育局系统网站安逸花借款app下载安装
  • 深圳建站网站模板营销网站建设规划
  • 网站服务器和空间的区别全国建筑工程企业资质查询平台
  • 做兼职打字员的网站范县网站建设
  • 廉洁文化网站建设方案手机制作软件下载
  • 杨和网站开发wordpress导航链接地址都是主页
  • 深圳商城网站哪家做的好找人网站 优帮云
  • 做水果网站弄个什么名字温州网站推广优化公司
  • 网站建设与推广论文教你如何在wordpress中设置cookie
  • 手机网站优化别墅装修一般多少钱一套
  • 重庆营销网站建设公司网站建设网络营销平台: 云搜系统
  • 网站前台维护如何做旅游小视频网站
  • 上海建立网站公司云南省建设工程标准定额网站
  • 石家庄设计网站公司茶叶营销策划方案
  • 游戏娱乐网站建设徐州有哪些网站制作公司
  • 成都市建设相关网站国家工商网企业查询官网
  • 怎么做链接网站学习网站建设的书籍
  • 电脑公司网站模板如何修改网站标题
  • 婚纱网站建设 最开始网站推广软件推荐