start_starter - CSDN
精华内容
参与话题
  • start()和run()方法的区别

    万次阅读 2011-11-13 14:00:31
    Java 线程一直是一个比较容易困扰的地方,首先,我们来认识下怎样生存线程。 认识 Thread 和 Runnable java中实现多线程有两种途径:继承Thread类或者实现Runnable接口。Runnable是接口,建议用接口的方式生成...
    
    

    Java 线程一直是一个比较容易困扰的地方,首先,我们来认识下怎样生存线程。
    认识 Thread 和 Runnable

    java中实现多线程有两种途径:继承Thread类或者实现Runnable接口。Runnable是接口,建议用接口的方式生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合继承。在使用Thread的时候只需继承Thread,并且new一个实例出来,调用 start()方法即可以启动一个线程。

    Thread Test = new Thread();

    Test.start();

    在使用Runnable的时候需要先new一个实现Runnable的实例,之后启动Thread即可。

    Test impelements Runnable;

    Test t = new Test();

    Thread test = new Thread(t);

    test.start();

    总结:Thread和Runnable是实现java多线程的2种方式,runable是接口,thread是类,建议使用runable实现 java多线程,不管如何,最终都需要通过thread.start()来使线程处于可运行状态。
    下面我们来谈谈本文重点,start()和run()方法的区别
    1) start:

    用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的 start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。

    2) run:

    run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。

    总结:调用start方法方可启动线程,而run方法只是thread的一个普通方法调用,还是在主线程里执行。

    这两个方法应该都比较熟悉,把需要并行处理的代码放在run()方法中,start()方法启动线程将自动调用 run()方法,这是由jvm的内存机制规定的。并且run()方法必须是public访问权限,返回值类型为void.

    展开全文
  • 1.汇编语言中的start有什么用? start就是一个标号,标志程序的入口而已,程序加载到内存之后CS:IP会指向这个标号,从START指向的指令开始运行 这个标号不一定是START,你也可以用MAIN,但在程序的最后要用END MAIN来提示...

    1.汇编语言中的start有什么用?

    start就是一个标号,标志程序的入口而已,程序加载到内存之后CS:IP会指向这个标号,从START指向的指令开始运行
    这个标号不一定是START,你也可以用MAIN,但在程序的最后要用END MAIN来提示程序结束
    START也不一定在代码段的最前面,它的前面是可以有指令或数据的
    例子(没有用start,用了main)(在代码段里放置变量是十分不规范的,这里只是为了举例):
    assume cs:code
    code segment
    a db 0
    b db 0
    main:
    mov ax,0
    mov ax,4C00H
    int 21H
    code ends
    end main

    当然,start和main在汇编代码中也可以同时存在,看具体的需要而定。

    2.汇编语言中START和MAIN有区别么?
    没有区别,都是标号。叫什么都行

    3.下面这段的来源:https://blog.csdn.net/lijun5635/article/details/7918392
    ·········································································································
    start: 作为汇编程序的一个标号,定义了程序的入口,既程序从start:处开始执行。
    若程序的第一条指令就是程序的入口,则start可以缺省。

    start 使用结构如下:

    start: \可以定义程序的入口 ,也可以仅仅作为一个标号来用

    end start \定义程序段结束 (作为标号时,可以没有对应的end start)

    其中 start 可以用其他字符代替,但是对应的end start 中的start也必须用同字符代替。
    若第一个start缺省,则end start中的 start 也必须去掉。
    ········································································································
    自己最近做汇编实验二时就发现,start可以仅仅作为一个标号来用,例如:jmp start 就表示跳到start指示的地方去,此时,程序中是可以没有end start的。书上也没有end start,但有end main

    最后到底是end start还是end main,要看程序中的汇编指令倒底是从哪儿开始执行的,一般看assume伪指令下面的一行的main:还是start:就可以。

    展开全文
  • 批处理命令之Start的详细用法

    万次阅读 2008-01-17 15:56:00
    Start启动单独的“命令提示符”窗口来运行指定程序或命令。如果在没有参数的情况下使用,start 将打开第二个命令提示符窗口。语法start ["title"] [/dPath] [/i] [/min] [/max] [{/separate | /shared}] [{/low | /...
    Start
    启动单独的“命令提示符”窗口来运行指定程序或命令。如果在没有参数的情况下使用,start 将打开第二个命令提示符窗口。

    语法
    start ["title"] [/dPath] [/i] [/min] [/max] [{/separate | /shared}] [{/low | /normal | /high | /realtime | /abovenormal | belownormal}] [/wait] [/b] [FileName] [parameters]

    参数
    "title" 指定在“命令提示符”窗口标题栏中显示的标题。
    /dpatch 指定启动目录。
    /i 将 Cmd.exe 启动环境传送到新的“命令提示符”窗口。
    /min 启动新的最小化窗口。
    /max 启动新的最大化窗口。
    /separate 在单独的内存空间启动 16 位程序。
    /shared 在共享的内存空间启动 16 位程序。
    /low 以空闲优先级启动应用程序。
    /normal 以一般优先级启动应用程序。
    /high 以高优先级启动应用程序。
    /realtime 以实时优先级启动应用程序。
    /abovenormal 以超出常规优先级的方式启动应用程序。
    /belownormal 以低出常规优先级的方式启动应用程序。
    /wait 启动应用程序,并等待其结束。
    /b 启动应用程序时不必打开新的“命令提示符”窗口。除非应用程序启用 CTRL+C,否则将忽略 CTRL+C 操作。使用 CTRL+BREAK 中断应用程序。
    非执行文件只要将文件名作为命令键入,即可通过其文件关联运行该文件。有关使用 assoc 和 ftype 在命令脚本中创建这些关联的详细信息,请参阅“”。
    在运行的命令的第一个标记为“CMD”字符串但不包括扩展名或路径限定符时,“CMD”将被 COMSPEC 变量的值取代。这样可以防止用户从当前目录选取 cmd。
    当您运行 32 位图形用户界面 (GUI) 应用程序时,cmd 不会在返回到命令提示符之前等待应用程序退出。如果从命令脚本运行应用程序,则不会发生这种新情况。在运行的命令中第一个符号不包括扩展名的情况下,Cmd.exe 使用 PATHEXT 环境变量的值确定要查找的扩展名以及查找顺序。PATHEXT 变量的默认值为:COM;.EXE;.BAT;.CMD(语法与 PATH 变量相同,使用分号分开不同元素)。当您搜索可执行文件且在任何扩展名上都没有匹配项时,start 将搜索目录名。

    具体例子:
    说明:如果你所在程序的路径中带有空格,那么必须用“”把路径括起来,否则系统会提示找不到XX文件,另外,在运行某些程序时,需在路径的前面加一对空白的“”,表示创建一个空白的窗口,它指向的程序是XXXXXXXX。还有就是别忘了空格。

    当我想运行位于“D:/draw/”的“photoshop.exe”使,应该使用以下命令:
    start “”“D:/draw/photoshop.exe” 表示以常规窗口运行程序

    如果想让程序以最大化窗口运行,则使用以下命令:

    start /max“”“D:/draw/photoshop.exe” 表示以最大化窗口运行程序

    最小化这是这样:

    start /min "" "D:/draw/photoshop.exe" 表示以最小化窗口运行程序

    等待某个程序允许完毕,也就是窗口关闭后,再打开下一个程序这可以这样:

    start /w "" "D:/draw/photoshop.exe"
    start "" cmd.exe

     
    展开全文
  • start()和run()的区别

    万次阅读 2018-09-22 22:16:00
    本方法通过实现runnable接口来实现多线程,刚开始被run()和start()搞糊涂了,后来看了很多博客,稍有感悟。所以写一下自己的理解。start()方法让一个线程进入就绪队列等待分配cpu,分到cpu后才调用实现的run()方法...

    本方法通过实现runnable接口来实现多线程,刚开始被run()和start()搞糊涂了,后来看了很多博客,稍有感悟。所以写一下自己的理解。start()方法让一个线程进入就绪队列等待分配cpu,分到cpu后才调用实现的run()方法。

    若不使用start()直接在main方法中直接使用run()方法, 比如下面程序的前两种情况,因为没有开辟新的线程,所以当前线程是main线程,而第三种情况,开辟了一个新线程且线程名我们设置为了“新线程”,在cpu执行新线程时会调用run()方法。

    package javaNewThread;
    public class test1main {
    	public static void main(String[] args) {
    		runnable runner=new runnable();
    		Thread th1= new Thread(runner,"新线程");
    		
    //区分以下三种情况
            
            //1
    		System.out.println("th1.run():");
    		th1.run();
    		//2
    		System.out.println("runner.run():");
    		runner.run();
    		//3
    		System.out.println("th1.start():");
    		th1.start();
    	}
    }
    public class runnable implements Runnable{
    	private int food=10;
    	public void run() {
    		for(int i=0;i<3;i++) {
    			System.out.println("线程名:"+Thread.currentThread().getName()+" food:"+food--);
    		}
    	}
    }

    结果:

    th1.run():
    线程名:main food:10
    线程名:main food:9
    线程名:main food:8
    runner.run():
    线程名:main food:7
    线程名:main food:6
    线程名:main food:5
    th1.start():
    线程名:新线程 food:4
    线程名:新线程 food:3
    线程名:新线程 food:2
    

    ------------交换123的顺序,查看运行结果

    接下来我把3放到1和2前面执行,发现新线程的run()还是最后执行,说明它在就绪队列中排队,并没有这么快执行。而当前正在执行mian线程,每个线程执行都有一个时间片,main线程时间片还没结束,所以23先执行了。等main线程时间片用完,再执行新线程。

    package javaNewThread;
    public class test1main {
    	public static void main(String[] args) {
    		runnable runner=new runnable();
    		Thread th1= new Thread(runner,"新线程");
    		
            //1,原来的3
    		System.out.println("th1.start():");
    		th1.start();
    	    //2
    		System.out.println("th1.run():");
    		th1.run();
    		//3
    		System.out.println("runner.run():");
    		runner.run();
    	}
    }
    package javaNewThread;
    
    public class runnable implements Runnable{
    	private int food=10;
    	public void run() {
    		for(int i=0;i<3;i++) {
    			System.out.println("线程名:"+Thread.currentThread().getName()+" food:"+food--);
    		}
    	}
    }
    

    运行结果:

    th1.start():
    th1.run():
    线程名:main food:10
    线程名:main food:9
    线程名:main food:8
    runner.run():
    线程名:main food:7
    线程名:main food:6
    线程名:main food:5
    线程名:新线程 food:4
    线程名:新线程 food:3
    线程名:新线程 food:2
    

     

    展开全文
  • 关于程序的入口函数(main _start...)

    千次阅读 2018-11-13 17:00:00
    参照来源:...ld有多种方法设置进程入口地址, 按一下顺序: (编号越前, 优先级越高) 1, ld命令行的-e选项 2, 连接脚本的ENTRY(SYMBOL)命令  eg. ENTRY(_start) /* Entry point of applicati...
  • start.s分析

    2018-12-25 15:37:08
    可以参考 : http://blog.csdn.net/bluesummerg/article/details/5940452 (强大的反汇编) ... // 本文学习目标: 微观上,对此start.S的每一行,都有了基本的了解 ...
  • StartActivity的2种用法

    万次阅读 2019-03-12 15:50:24
    startActivity有2种用法 1.显示调用。通过指明ComponentName,显示调用Activity,若 Intent intent = newIntent(CustomerService.this, DetailInfo.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ...
  • cmd命令行 start命令

    万次阅读 2014-03-18 21:58:56
    开始,运行,输入cmd,打开命令窗口:再输入以下命令: ...cmd下start命令的用法例如:start /min /b "" path\filename 可以让某个程序在打开的时候是以最小化方式运行.START命令简介  输入START然后分别输入以
  • start()方法和run()方法

    万次阅读 2018-01-11 09:18:39
    继线程的创建和启动,这篇博文主要讨论一下start()和run()这两个方法。 1. run()方法 在线程的创建和启动的总结中有说过:根据java api,Thread类本身也是实现了Runnable接口,有: public class Thread ...
  • Java并发编程 相对于传统的单线程,多线程能够在操作系统多核配置的基础上,能够更好地利用服务器的多个CPU资源,使程序运行起来更加高效。Java通过提供对多线程的支持来在一个进程内并发执行多个线程,每个线程都...
  • 最近弄新项目,之前都是用tomcat7,这次换了8,配置完之后每次启动都会报错,网上大多数都是说web.xml里的错,可我是新项目,web.xml中就那几行代码看了几十遍确定不是web.xml中的问题,找了一整天最后在篇很简单的...
  • oracle中的Start With关键字

    万次阅读 2018-09-04 16:57:45
    在oracle中遇到了Start With查询语句,经过查询资料了解现在总结一下. 参考文章:https://www.cnblogs.com/zyzdisciple/p/7873584.html 首先我们可以新建一个demo表做测试 create table DEMO ( ID varchar2(10) ...
  • 1.首先看console台报错的信息严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine...
  • 嘻哈哈 你在哪? +-START-+fIiIhEY/P3N4OnODeHp6dYh9OnN/fUZMRExE1A==+-END-+ 你知道这个什么意思不
  • net start mysql 启动MySQL服务报错 发生系统错误 5 解决方法
  • 在DOS窗口、gitbush以及一些可以使用的命令行工具的界面上,输入:net stop mysql、net start mysql时,总是提示:服务名无效。 出现提示如下: 原因是:因为net start +服务名,启动的是win下注册的服务。...
  • Unable to start embedded Tomcat(已解决)

    万次阅读 热门讨论 2019-08-02 17:29:44
    Unable to start embedded Tomcat(已解决) 今天在启动Springboot项目的时候遇到个奇怪问题,用idea自带的启动工具启动没问题,但是用热部署插件jrebel启动的时候就报错,具体错误如下: 先看截图 后面贴上...
  • Unity中Awake和Start的区别

    万次阅读 多人点赞 2016-03-25 16:17:21
    正式开始学习Unity了,当然,第一个遇到的问题就是Awake和Start的问题,之前在网上查过一下这两者的区别,简单记忆了一下,认为自己知道了两者的区别。不过实际用起来,发现对于这两者到底是什么区别,心里还是没底...
  • 遇到这个问题的有很多种情况 第一种:web.xml问题,这个只要好好检查一下代码就可以解决 网上大部分都是这个的问题 servlet-mapping中的 &...错误信息中,我挑选重要的一段,我在项目中需要的也是这个问题,...
  • U-Boot U-Boot的版本选择 U-Boot的下载地址:/pub/u-boot的索引 进入到U-Boot的下载页面,发现U-Boot的版本众多: 那怎么选取U-Boot的版本呢?够用就行。 本文芯片选择S5PV210,U-Boot版本选择u-boot-2010.12版本。...
1 2 3 4 5 ... 20
收藏数 3,790,167
精华内容 1,516,066
关键字:

start