• 阿里云安装Mono 发生错误解决方法


    园豆兑换阿里云代金券 体验阿里云云服务器 http://home.cnblogs.com/activity/aliyun 活动,花1块钱体验了一下阿里云,安装了CentOS6.2后,在其上按照《32和64位的CentOS 6.0下 安装 Mono 2.10.8 和Jexus 5.0》,在执行yum 更新系统的时候就发生了如下错误:

    --> Running transaction check 
    ---> Package gc.x86_64 0:7.1-10.el6 will be installed 
    ---> Package glibc-headers.x86_64 0:2.12-1.80.el6_3.5 will be installed 
    --> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.                                                                                                 12-1.80.el6_3.5.x86_64 
    --> Processing Dependency: kernel-headers for package: glibc-headers-2.12-1.80.e                                                                                                 l6_3.5.x86_64 
    --> Finished Dependency Resolution 
    Error: Package: glibc-headers-2.12-1.80.el6_3.5.x86_64 (updates) 
               Requires: kernel-headers 
    Error: Package: glibc-headers-2.12-1.80.el6_3.5.x86_64 (updates) 
               Requires: kernel-headers >= 2.2.1 
    You could try using --skip-broken to work around the problem 
    ** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows: 
    kernel-2.6.32-220.13.1.el6.x86_64 has missing requires of kernel-firmware >= ('0                                                                                                 ', '2.6.32', '220.13.1.el6')

    解决方法:修改文件vi /etc/yum.conf 将exclude=kernel*前加注释即可解决,此参数的意思是排除安装或更新kernel开头的软件,而我们安装gcc需要依赖kernel相关的软件glibc-headers-2.12-1.80.el6_3.5.x86_64 。

    51CTO最近举办 2012年度IT博客大赛, 期待博客园的同学们鼎力相助

    作者: 自由、创新、研究、探索……
    出处:http://shanyou.cnblogs.com/
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
    要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任 
    分类: Linux/MonoLMJA

    园豆兑换阿里云代金券 体验阿里云云服务器 http://home.cnblogs.com/activity/aliyun 活动,花1块钱体验了一下阿里云,安装了CentOS6.2后,在其上按照《32和64位的CentOS 6.0下 安装 Mono 2.10.8 和Jexus 5.0》,在执行yum 更新系统的时候就发生了如下错误:

    --> Running transaction check 
    ---> Package gc.x86_64 0:7.1-10.el6 will be installed 
    ---> Package glibc-headers.x86_64 0:2.12-1.80.el6_3.5 will be installed 
    --> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.                                                                                                 12-1.80.el6_3.5.x86_64 
    --> Processing Dependency: kernel-headers for package: glibc-headers-2.12-1.80.e                                                                                                 l6_3.5.x86_64 
    --> Finished Dependency Resolution 
    Error: Package: glibc-headers-2.12-1.80.el6_3.5.x86_64 (updates) 
               Requires: kernel-headers 
    Error: Package: glibc-headers-2.12-1.80.el6_3.5.x86_64 (updates) 
               Requires: kernel-headers >= 2.2.1 
    You could try using --skip-broken to work around the problem 
    ** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows: 
    kernel-2.6.32-220.13.1.el6.x86_64 has missing requires of kernel-firmware >= ('0                                                                                                 ', '2.6.32', '220.13.1.el6')

    解决方法:修改文件vi /etc/yum.conf 将exclude=kernel*前加注释即可解决,此参数的意思是排除安装或更新kernel开头的软件,而我们安装gcc需要依赖kernel相关的软件glibc-headers-2.12-1.80.el6_3.5.x86_64 。

    51CTO最近举办 2012年度IT博客大赛, 期待博客园的同学们鼎力相助

    作者: 自由、创新、研究、探索……
    出处:http://shanyou.cnblogs.com/
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
    要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任 
    分类: Linux/MonoLMJA

    园豆兑换阿里云代金券 体验阿里云云服务器 http://home.cnblogs.com/activity/aliyun 活动,花1块钱体验了一下阿里云,安装了CentOS6.2后,在其上按照《32和64位的CentOS 6.0下 安装 Mono 2.10.8 和Jexus 5.0》,在执行yum 更新系统的时候就发生了如下错误:

    --> Running transaction check 
    ---> Package gc.x86_64 0:7.1-10.el6 will be installed 
    ---> Package glibc-headers.x86_64 0:2.12-1.80.el6_3.5 will be installed 
    --> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.                                                                                                 12-1.80.el6_3.5.x86_64 
    --> Processing Dependency: kernel-headers for package: glibc-headers-2.12-1.80.e                                                                                                 l6_3.5.x86_64 
    --> Finished Dependency Resolution 
    Error: Package: glibc-headers-2.12-1.80.el6_3.5.x86_64 (updates) 
               Requires: kernel-headers 
    Error: Package: glibc-headers-2.12-1.80.el6_3.5.x86_64 (updates) 
               Requires: kernel-headers >= 2.2.1 
    You could try using --skip-broken to work around the problem 
    ** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows: 
    kernel-2.6.32-220.13.1.el6.x86_64 has missing requires of kernel-firmware >= ('0                                                                                                 ', '2.6.32', '220.13.1.el6')

    解决方法:修改文件vi /etc/yum.conf 将exclude=kernel*前加注释即可解决,此参数的意思是排除安装或更新kernel开头的软件,而我们安装gcc需要依赖kernel相关的软件glibc-headers-2.12-1.80.el6_3.5.x86_64 。

    51CTO最近举办 2012年度IT博客大赛, 期待博客园的同学们鼎力相助

    作者: 自由、创新、研究、探索……
    出处:http://shanyou.cnblogs.com/
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
    要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任 
    分类: Linux/MonoLMJA

    1.线程(Thread)的概念理解

    这段比较枯燥,都是些概念性的东西。可以参考维基百科中的解释。我们一般多数都听过进程,那么计算机中的进程又是什么,它跟咱们常说的进程是什么关系?

    比较学术的解释是这个样子描述的:线程是程序运行的基本执行单元。所以当我们的操作系统在执行某个程序(也许是QQ)的时候,就会在系统中建立一个进程(PS:你可以使用ctrl+shilt+del来唤出你的windows任务管理器看看你现在系统中的进程),而在这个进程中必须至少建立一个线程(主线程)来作为这个程序的运行的入口点。有点下面图示的意思:

    thread1

    在操作系统将进程分成多个线程后,这些线程可以在操作系统的管理下并发执行,从而大大提高了程序的运行效率。

    2.java的线程模型

    (一)在Java中主要是有一个Thread的类来掌管线程的,那么它有什么神奇的地方吗?当我们new出来一个Thread对象的时候,其实一个线程就被我们定义好了,而后如何去建立和执行这个线程呢?那java当然会提供人性化的方法,就是Thread的start方法,它就负责建立线程,相当于调用了操作系统的CreateRhread。当start方法调用后,Thread对象就会自动找到run方法,然后执行run方法。所以,何继承Thread的Java类都可以通过Thread类的start方法来建立线程。如果想运行自己的线程执行函数,那就要覆盖Thread类的run方法

    (二)除Thread外,java还提供了一个Runable接口来标识class是否可作为线程类,这个接口只有一个run的抽象方法,用于Thread的调用。此为方法二:实现Runnable接口,并通过Thread和实现Runnable的类来建立线程。

    3.应用举例

    传统的线程建立过程

    方法一

    继承Thread类,重写run方法,然后调用其start方法:

    复制代码
    Thread thread = new Thread() {
                @Override
                public void run() {
                    while (true) {
                        try {
                            Thread.sleep(500);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        System.out.println("1:" + Thread.currentThread().getName()
                                + " runing ..... ");
                        System.out
                                .println("2:" + this.getName() + " runing ..... ");
                        super.run();
                    }
                }
            };
       thread.start();
    复制代码

    方法二

    实现Runnable接口,并通过Thread和实现Runnable的类来建立线程

    复制代码
    Thread thread2 = new Thread(new Runnable() {
    
                @Override
                public void run() {
                    while (true) {
                        try {
                            Thread.sleep(500);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        System.out.println("3:" + Thread.currentThread().getName()
                                + " runing ..... ");
    
                    }
                }
            });
            thread2.start();
    复制代码

    出面向对象的角度出发方法二是不是由于方法一呢?

    下面是一段思考题:

    复制代码
    new Thread(new Runnable() {
    
                @Override
                public void run() {
                    while (true) {
                        try {
                            Thread.sleep(500);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        System.out.println("Runnable:"
                                + Thread.currentThread().getName()
                                + " runing ..... ");
    
                    }
                }
            }) {
                @Override
                public void run() {
                    while (true) {
                        try {
                            Thread.sleep(500);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        System.out.println("Thread:"
                                + Thread.currentThread().getName()
                                + " runing ..... ");
                    }
                }
            }.start();
    复制代码

    那么上面这段代码的执行结果会是什么呢?

    呀?这么会有这样的写法?即是Thread的子类,又使用实现了Runnable接口的类来建立线程。那到底是执行力子类中的run方法,还是Runnable中的run方法呢?

    请看下面的一段Thread的源码

    复制代码
    /**
         * If this thread was constructed using a separate 
         * <code>Runnable</code> run object, then that 
         * <code>Runnable</code> object's <code>run</code> method is called; 
         * otherwise, this method does nothing and returns. 
         * <p>
         * Subclasses of <code>Thread</code> should override this method. 
         *
         * @see     #start()
         * @see     #stop()
         * @see     #Thread(ThreadGroup, Runnable, String)
         */
        public void run() {
        if (target != null) {//这里是不是很清楚了,当我们没有一个实现了Runnable接口的类作为target的时候,就会调用Thread自己的run方法来,也就是咱们子类的run
            target.run();
        }
        }
    复制代码

    是不是一下就清楚了,所以最后的执行结果应该是:

    Thread:Thread-0 runing .....

    哈哈~~~

    PS:我们一定要从源码上,从面向对象的思想上来分析问题

    联佳句题流水,十载幽思满素怀。今日却成鸾凤友,方知红叶是良媒。
    标签: javaThread多线程
  • 相关阅读:
    Homestead 安装其它的PHP版本
    Angular调用父Scope的函数
    检测到在集成的托管管道模式下不适用的ASP.NET设置
    IE8不能保存cookie,造成response.redirect死循环的原因
    IE浏览器“自定义安全级别”不能设置的原因
    测试sql server服务是否配置正确
    Sql Server Express 2005提示"failed to generate a user instance of sql server "
    cordova使用Gradle构建下载maven太慢,使用阿里云镜像
    使用Cordova编译Android平台程序提示:Could not reserve enough space for 2097152KB object heap
    Angular动态编译Html
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2750390.html
Copyright © 2020-2023  润新知