這樣用技術,程序猿更幸福

作為久經職場而又富有責任心的猿外,每天上班的第一件事,便是連上生產服務器,top free ps 一頓命令熱身猛如虎,然後匯總出業務服務的狀態、系統指標等,看到一切正常,心裏才算踏實。

不知道有多少盡職盡責的朋友們,每天都重複的做着如此机械而又簡單的事情。說句實話,其實和机械狗沒啥區別。本着做事認真、追求極致的態度,那我們為什麼不能打造一款這樣的机械狗呢?

關注過猿外的朋友們都應該知道,在之前的文章中,猿外曾經提到過,守護服務的監控應用——看門狗。不錯,要打造的机械狗,就是看門狗。

接下來就給大家簡單聊一聊,看門狗的背景來源以及實現思路,希望能給正在尋找守護服務監控解決方案的朋友們,一點實現思路。下面的內容十分燒腦,請大家坐穩扶好。

1. 什麼是看門狗?

在由單片機構成的微型計算機系統中,由於單片機的工作,常常會受到來自外界電磁場的干擾,造成程序的跑飛,而陷入死循環,程序的正常運行被打斷,由單片機控制的系統無法繼續工作,會造成整個系統的陷入停滯狀態,發生不可預料的後果,所以出於對單片機運行狀態進行實時監測的考慮,便產生了一種專門用於監測單片機程序運行狀態的芯片,稱“看門狗”——摘自“百度百科”。

相信有不少朋友,看到上面一段非人話的描述,就想直接刪了此篇熊文,溜之大吉。大家,心莫慌,猿外再舉個貼近生活的栗子解釋一下。

猿外家養了一條 dog ,經常陪孩子玩,孩子時不時的撒一把狗糧給 dog;
如果孩子睡着,長時間未撒狗糧,dog 就主動把孩子叫醒;
繼續讓孩子撒狗糧,然後 dog 吃到孩子撒的狗糧,就高興的狂吠;
如果 dog 跑走了,孩子也不撒狗糧了,孩子也就可以睡覺了。

剝開栗子,內行看門道,外行看熱鬧,把上面內容翻譯一遍:

原話:猿外家養了一條 dog,經常陪孩子玩,孩子時不時的撒一把狗糧給 dog;
翻譯:存在兩個進程:子進程(應用服務)、父進程(守護進程),子進程和父進程兩個進程間一直保持心跳通訊;

原話:如果孩子睡着,長時間未撒狗糧, dog 就主動把孩子叫醒;
翻譯:子進程與父進程心跳通訊中斷,父進程則負責啟動子進程,完成子進程的服務守護;

原話:繼續讓孩子撒狗糧,然後 dog 吃到孩子撒的狗糧,就高興的狂吠;
翻譯:子進程與父進程實時通訊,父進程實時監控子進程的狀態,並實時進行報警通知;

原話:如果 dog 跑走了,孩子也不撒狗糧了,孩子也就可以睡覺了。
翻譯:父進程down了,子進程與父進程的通訊也就無法保持了,子進程也一併退出。

不知道朋友們通過上面的栗子剖析,對看門狗了解了多少呢?為了更清晰的給你們說清楚,猿外再給大家上個一目瞭然的圖吧。

如上圖所示,猿外主要把看門狗定位為:集服務守護、指標採集、日誌歸集、自動化報警於一體的監控系統。說白了,有了看門狗,媽媽再也不用擔心我的應用服務出問題了。

洋洋洒洒鋪墊這麼多,那到底該如何實現呢?

2. 如何實現?

猿外先給大家畫個腦圖,主要分五步走,希望朋友們跟着猿外的腳步,莫掉隊。

相信絕大部分朋友通過猿外的腦圖,已經對看門狗應用了解個八九不離十。猿外再稍微闡述一下:

實現方式:看門狗應用在實現過程中也走了一些彎路。剛開始技術選型的時候,考慮到看門狗應該對應用零侵入、低耦合,於是採用javaagent植入方式進行實現,但是萬萬沒想到的是開發、調試過程比較麻煩,一遇到問題,小夥伴就排查半天,在第一版上線后,猿外迅速帶領小夥伴,採用插件化方式進行第二版迭代。

服務守護:採用 J2SE 1.5 java.lang 包中新添加的 ProcessBuilder 類來完成子進程的啟動、停止、重啟(完成子服務的守護功能)。

指標採集:通過 JMX 方式連接子服務,獲取子服務的內存佔用、CPU 使用、線程數等指標。

日誌歸集:主要站在 flume 的肩膀上,集成到項目中並進行二次開發,存儲採用 elasticsearch。

報警通知:主要提供郵箱通知、QQ 通知、微信實時通知。

其中每個實現細節猿外就不再進行深入展開了,感興趣的朋友歡迎關注微信公眾號四猿外(si-yuanwai),後台留言進行交流。

羅里吧嗦,寫了這麼多。羅馬並非一日建成的,實現途中踩過的坑、吃過的苦頭,剎那間全部湧上心頭。不過看門狗應用,已經在生產上推廣使用,自上線以來還廣受好評,猿外現在每天來的第一件事,由原來的系統巡檢變成了沖咖啡,幸福指數陡然上升。

最後,猿外想說的是:簡單的事重複做,你就是專家;重複的事用心做,你就是贏家。沒錯,這話說的沒毛病,不過成為專家之餘,大家不妨稍做創新,看看有沒有可以用的技術輪子,說不定會改變机械的工作方式,提升工作效率,提高幸福指數呢。

歡迎大家關注我的公眾號:四猿外。
我準備了一些純手打的高質量PDF,有好友贊助的也有我自己的,大家可以免費領取:
深入淺出Java多線程、HTTP超全匯總、Java基礎核心總結、程序員必知的硬核知識大全、簡歷面試談薪的超全乾貨。
別看數量不多,但篇篇都是乾貨,看完的都說很肝。

領取方式:掃碼關注后,在公眾號後台回復:666

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司“嚨底家”!

※別再煩惱如何寫文案,掌握八大原則!

※產品缺大量曝光嗎?你需要的是一流包裝設計!

聚甘新

基礎拾遺—-多線程,基礎拾遺—-多線程

基礎拾遺

基礎拾遺——特性詳解

基礎拾遺——webservice詳解

基礎拾遺——redis詳解

基礎拾遺——反射詳解

基礎拾遺——委託、事件詳解

基礎拾遺——接口詳解

基礎拾遺——泛型詳解

基礎拾遺—–依賴注入

基礎拾遺—–數據註解與驗證

基礎拾遺—–mongoDB操作

基礎拾遺—-RabbitMQ

基礎拾遺—CLR

基礎拾遺—-多線程

前言

我們知道c# 程序是自上而下的,但有的時候部分程序使用時間較長比如下載文檔什麼的。這是就可以用到線程。線程可以理解為是程序的執行路徑,每個線程都定義了一個獨特的控制流。如果您的應用程序涉及到複雜的和耗時的操作,那麼設置不同的線程執行路徑往往是有益的,每個線程執行特定的工作。

1.線程的生命周期

線程生命周期開始於 System.Threading.Thread 類的對象被創建時,結束於線程被終止或完成執行時。

下面列出了線程生命周期中的各種狀態:

未啟動狀態:當線程實例被創建但 Start 方法未被調用時的狀況。

就緒狀態:當線程準備好運行並等待 CPU 周期時的狀況。

不可運行狀態:下面的幾種情況下線程是不可運行的:

  已經調用 Sleep 方法

  已經調用 Wait 方法

  通過 I/O 操作阻塞

死亡狀態:當線程已完成執行或已中止時的狀況。

2.多線程的優缺點

2.1.優點

  1. 可以使用線程將代碼同其他代碼隔離,提高應用程序的可靠性。
  2. 可以使用線程來簡化編碼。
  3. 可以使用線程來實現併發執行。
  4. 可以提高CPU的利用率

2.2.缺點

  1. 線程開的越多,內存佔用越大。
  2. 協調和管理代碼的難度加大,需要CPU時間跟蹤線程。
  3. 線程之間對共享資源的訪問會相互影響,必須解決競用共享資源的問題。
  4. 銷毀線程需要了解可能發生的問題並對那些問題進行處理。

3.線程的實現

3.1.異步委託

關於委託基礎拾遺——委託、事件詳解這有詳細介紹,我們都知道調用委託Delegate()或者Delegate?.Invoke()。進行執行,但是主線程的代碼是從上至下進行執行的,那麼我們想要委託方法進行一個新的線程只需BeginInvoke生成異步方法調用即可。

3.3.1.實現

        public delegate void ThreadDelegate();
        static void MethodDelegata()
        {
            Console.WriteLine("MethodDelegata");
        }
        static void Main(string[] args)
        {
            ThreadDelegate d = MethodDelegata;
            //BeginInvoke 兩個參數一個是執行完后回調方法,一個是返回結果,如委託有參數載氣前方添加即可。
            d.BeginInvoke(null,null);
            Console.WriteLine("Main");
            Console.ReadKey();
        } 

執行結果如下

 3.1.1.獲取線程返回值

線程執行時有可能執行時間過長,如果我們要獲取線程的返回值,這是就需要不回線程的狀態和利用線程的回調方法。

  • 檢測等待線程狀態
       public delegate int ThreadDelegate(int i);
        static int MethodDelegata(int i)
        {
            Console.WriteLine("MethodDelegata" + i);
            Thread.Sleep(1000);
            return 100;

        }
        static void Main(string[] args)
        {
            ThreadDelegate d = MethodDelegata;
            //BeginInvoke 兩個參數一個是執行完后回調方法,一個是返回結果
            IAsyncResult ar = d?.BeginInvoke(1, null, null);//獲取線程執行狀態
            Console.WriteLine("Main");
            while (!ar.IsCompleted) {//線程是否已執行完成,未完成執行
                Console.WriteLine(".");
                Thread.Sleep(10);//減少線程監測頻率
            }
            int res = d.EndInvoke(ar);//獲取線程的返回值
            Console.WriteLine(res);
            Console.ReadKey();
        }

結果如下

·  

我們如果不用while 的方式去等待方法執行結束,可以  ar.AsyncWaitHandle.WaitOne(1000); 但我們預估執行時間如果小於實際執行時間的化,返回值就獲取不到了。

 bool isEnd = ar.AsyncWaitHandle.WaitOne(1000);
                if (isEnd)
            {
                int res = d.EndInvoke(ar);//獲取線程的返回值
                Console.WriteLine(res);

            }

View Code

  • 利用 d?.BeginInvoke(1, callBackobject) 回調方法
       public delegate int ThreadDelegate(int i);
        static int MethodDelegata(int i)
        {
            Console.WriteLine("MethodDelegata" + i);
            Thread.Sleep(1000);
            return 100;

        }
        static void Main(string[] args)
        {
            ThreadDelegate d = MethodDelegata;
            //BeginInvoke 兩個參數一個是執行完后回調方法,一個是返回結果
            IAsyncResult ar = d?.BeginInvoke(1, CallBack, d);//獲取線程執行狀態
            Console.WriteLine("Main");
         
            Console.ReadKey();
        }
        /// <summary>
        /// 結束回調方法
        /// </summary>
        /// <param name="ar"></param>
        private static void CallBack(IAsyncResult ar)
        {
            var obj=ar.AsyncState as ThreadDelegate;
            int res = obj.EndInvoke(ar);
            Console.WriteLine("線程結束,結果為:"+res);
        }

 我們通過lamda表達式優化一下上面的代碼

     static void Main(string[] args)
        {
            ThreadDelegate d = MethodDelegata;
            //BeginInvoke 兩個參數一個是執行完后回調方法,一個是返回結果
            //IAsyncResult ar = d?.BeginInvoke(1, CallBack, d);//獲取線程執行狀態
            d?.BeginInvoke(1, ar => {
                int res = d.EndInvoke(ar);
                Console.WriteLine("線程結束,結果為:" + res);
            }, null);
            Console.WriteLine("Main");
            Console.ReadKey();
        }

3.2.Thread 類

3.2.1.不帶參數

        static void MethodThread()
        {
            Console.WriteLine("MethodDelegata");//第二個參數最多執行時間
            Thread.Sleep(1000);
        }
        static void Main(string[] args)
        {
            Thread t = new Thread(MethodThread);//創建了thread 對象單位啟動
        //Thread t = new Thread(()=> { Console.WriteLine("MethodDelegata"); Thread.Sleep(1000);});//可直接用lamda表達式 
            t.Start();
            Console.WriteLine("Main");
            Console.ReadKey();
        }

3.2.2.帶參數 

Start(obj) 傳參:定義方法如果有參數必須object
        static void MethodThread(object s) { Console.WriteLine("MethodDelegata"); Thread.Sleep(1000); } static void Main(string[] args) { //創建了thread 對象單位啟動
            Thread t = new Thread(MethodThread); t.Start("wokao");//傳遞參數
            Console.WriteLine("Main"); Console.ReadKey(); }
對象傳參:定義存放數據和線程方法的類
   class Program
    {
       
        static void Main(string[] args)
        {
            //創建了thread 對象單位啟動
            ClassThead c = new ClassThead("1");
            Thread t = new Thread(c.MethodThread);
            t.Start();//傳遞參數
            Console.WriteLine("Main");
            Console.ReadKey();
        }

    }
    public class ClassThead
    {
        private string wr;
        public ClassThead(string s)
        {
            this.wr = s;
        }
        public  void MethodThread()
        {
            Console.WriteLine("MethodDelegata");
            Thread.Sleep(1000);

        }
    }

3.2.3 前台線程和後台線程

  1.     前台線程:只要存在有一個前台線程在運行,應用程序就在運行。
  2.     後台線程:應用程序關閉時,如果後台線程沒有執行完,會被強制性的關閉
  3.     默認情況下,用Thread類創建的線程是前台線程,線程池中的線程總是後台線程。
  4. thread.IsBackground = true; 設置為後台程序
   static void MethodThread()
        {
            Console.WriteLine("MethodDelegata");
            Thread.Sleep(10000);

            Console.ReadKey();

        }
        static void Main(string[] args)
        {
            Thread t = new Thread(MethodThread);
            t.IsBackground = true;//當main執行結束后,不管t是否執行結束程序都關閉
            t.Start();//傳遞參數
            Console.WriteLine("Main");
        }

thread.Abort() 終止線程的執行。調用這個方法,會拋出一個ThreadAbortException類型的異常。

thread.Join() 將當前線程睡眠,等待thread線程執行完,然後再繼續執行當前線程。

3.3.線程池threadPool

上面已經說了線程是為後台線程,在這多線程的操作推薦使用線程池線程而非新建線程。因為就算只是單純的新建一個線程,這個線程什麼事情也不做,都大約需要1M的內存空間來存儲執行上下文數據結構,並且線程的創建與回收也需要消耗資源,耗費時間。而線程池的優勢在於線程池中的線程是根據需要創建與銷毀,是最優的存在。但是這也有個問題,那就是線程池線程都是後台線程,主線程執行完畢后,不會等待後台線程而直接結束程序。

 //如果帶參數必須為object
        static void MethodThreadPool(object obj)
        {
            Console.WriteLine("MethodDelegata"+Thread.CurrentThread.ManagedThreadId);//當前線程id
            Thread.Sleep(1000);
         }
        static void Main(string[] args)
        {
            ThreadPool.QueueUserWorkItem(MethodThreadPool);// 必須帶參數
            ThreadPool.QueueUserWorkItem(MethodThreadPool);
            ThreadPool.QueueUserWorkItem(MethodThreadPool);
            ThreadPool.QueueUserWorkItem(MethodThreadPool);
            ThreadPool.QueueUserWorkItem(MethodThreadPool);
            Console.WriteLine("Main");
            Console.ReadKey();
        }

3.4. Task

  1. Task是架構在Thread之上的,也就是說任務最終還是要拋給線程去執行。
  2. Task跟Thread不是一對一的關係,比如開10個任務並不是說會開10個線程,這一點任務有點類似線程池,但是任務相比線程池有很小的開銷和精確的控制
  3. 可以將任務入隊到線程池中異步執行。
  4. 線程池入隊的任務無法取消
  5. 沒有回調方法,可以使用委託實現回調

3.4.1.任務的定義

方法1

var t1 = new Task(() => TaskMethod("Task 1"));
t1.Start();
Task.WaitAll(t1);//等待所有任務結束 

方法2

Task.Run(() => TaskMethod("Task 2"));

方法3

  Task.Factory.StartNew(() => TaskMethod("Task 3")); 直接異步的方法 
  //或者
  var t3=Task.Factory.StartNew(() => TaskMethod("Task 3"));
  Task.WaitAll(t3);//等待所有任務結束

案列

 static void Main(string[] args)
        {
            var t1 = new Task(() => TaskMethod("Task 1"));
            var t2 = new Task(() => TaskMethod("Task 2"));
            t2.Start();
            t1.Start();
            Task.WaitAll(t1, t2);
            Task.Run(() => TaskMethod("Task 3"));
            Task.Factory.StartNew(() => TaskMethod("Task 4"));
            //標記為長時間運行任務,則任務不會使用線程池,而在單獨的線程中運行。
            Task.Factory.StartNew(() => TaskMethod("Task 5"), TaskCreationOptions.LongRunning);

            Console.WriteLine("主線程執行業務處理.");
            //創建任務
            Task task = new Task(() =>
            {
                Console.WriteLine("使用System.Threading.Tasks.Task執行異步操作.");
                for (int i = 0; i < 10; i++)
                {
                    Console.WriteLine(i);
                }
            });
            //啟動任務,並安排到當前任務隊列線程中執行任務(System.Threading.Tasks.TaskScheduler)
            task.Start();
            Console.WriteLine("主線程執行其他處理");
            task.Wait();
            Thread.Sleep(TimeSpan.FromSeconds(1));
            Console.ReadLine();
        }

        static void TaskMethod(string name)
        {
            Console.WriteLine("Task {0} is running on a thread id {1}. Is thread pool thread: {2}",
                name, Thread.CurrentThread.ManagedThreadId, Thread.CurrentThread.IsThreadPoolThread);
        }

View Code

3.4.2.async/await

async是contextual關鍵字,await是運算符關鍵字。

async/await 結構可分成三部分:

  1. 調用方法:該方法調用異步方法,然後在異步方法執行其任務的時候繼續執行;
  2. 異步方法:該方法異步執行工作,然後立刻返回到調用方法;
  3. await 表達式:用於異步方法內部,指出需要異步執行的任務。一個異步方法可以包含多個 await 表達式(不存在 await 表達式的話 IDE 會發出警告)。
class Program
    {
        async static void AsyncFunction()
        {
            await Task.Delay(1);
            Console.WriteLine("使用System.Threading.Tasks.Task執行異步操作.");
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(string.Format("AsyncFunction:i={0}", i));
            }
        }
        public static void Main()
        {
            Console.WriteLine("主線程執行業務處理.");
            AsyncFunction();
            Console.WriteLine("主線程執行其他處理");
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(string.Format("Main:i={0}", i));
            }
            Console.ReadLine();
        }
    }

4.線程爭用與死鎖

  class Program
    {
        static void ChangeState(object obj)
        {
            ClassThead c = obj as ClassThead;
            while (true)
            {
                c.MethodThread();
            }
        }
        //如果帶參數必須為object

        static void Main(string[] args)
        {
            ClassThead c = new ClassThead();
            Thread t = new Thread(ChangeState);
            t.Start(c);
            Console.WriteLine("Main");
            Console.ReadKey();
        }

    }
    public class ClassThead
    {
        private int state = 6;
        public void MethodThread()
        {
            state++;
            if (state == 6)
            {
                Console.WriteLine("MethodDelegata");
                Thread.Sleep(1000);
            }
            state = 6;
        }
    }

View Code

可以從上面的方法中看到執行結果為空,雖然他在執行但是state一直都是>6的。所以是不執行的。

但如果開啟兩個線程的結果是什麼呢?

是執行的因為多個線程有可能是在執行時另一個線程給他賦值了。所以我們就要給對象加鎖

        static void ChangeState(object obj)
        {
            ClassThead c = obj as ClassThead;
            while (true)
            {
                lock (c)
                {
                    c.MethodThread();
                }
            }
        }

注:但是有可能會出現線程爭用一直等待的情況,所以在編程過程設計好鎖的順序

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

聚甘新

第七屆中國國際新能源汽車論壇2017之電池前沿技術與前景

毋庸置疑,電池是新能源汽車的核心部件。當前比較主流的電池包括超級電容器、金屬氫化物鎳電池、鋰離子電池、燃料電池。超級電容器的特點是可承受瞬間大電流充放電,但儲電量低,不能驅動車輛長時間的使用;金屬氫化物電池具備大電流充放電能力,安全性好,但是比容量低,體積較大;鋰離子電池的電壓在這幾類電池中最高,比容量高,但它的是安全性、低溫性能差;燃料電池從去年開始走進更多人的視線,能量儲備充足,可快速補充燃料,但成本高,瞬間輸出能力差,致命的缺陷是不能進行能量的回饋,導致驅動的車輛不能只用燃料電池實現刹車時能量的回收。

站在“風口”的新能源汽車正在經歷“冰火兩重天”:一面是整個行業不斷高速擴張銷量加速,但另一面,作為新能源汽車“心臟”的動力電池供應卻出現不足,影響新能源整車產量從量上看,今年新能源產銷帶來的動力電池需求依然將進一步放大。但在下游原材料價格暴漲以及上游整車廠價格打壓的雙重壓力下,什麼樣的動力電池企業能夠實現突圍?業內人士預計,在短暫的火爆期之後,成本和技術導向或使得今年動力電池行業將進入洗牌期。而在霧霾圍城、PM2.5屢屢爆表的現狀下,發展並普及新能源汽車具有重要的現實意義。而因新能源汽車井噴所帶來的大量退役動力電池,引發了行業的未雨綢繆。

新能源汽車對於電池的需求量仍處於巨大的增長空間,並且總體而言,動力電池的安全性與新能源汽車的使用要求還存在一定差距,中國國際新能源汽車論壇—致力於打造全球規模最大,最國際化的新能源汽車論壇的第七屆大會攜手上海市嘉定區人民政府將會專門設立動力電池板塊,進行為期2天的技術探討及分享,屆時國內外知名的整車商,動力電池知名供應商及零部件企業高層領導等將前來分享各自對於目前動力市場的發展前景看法及介紹最前沿的技術,同時,也會側重於目前存在的難點——梯次利用及回收和技術方面進行更深層次的交流。

本屆大會將於2017年5月17-19日在上海舉辦,大會涉及七個論壇、頒獎典禮、研討會及晚宴。屆時將會有全球範圍內的整車製造商、電網電力公司、電池廠商、零部件供應商、核心技術提供商和政府官員等600多位行業人士一起,對新能源汽車產業面臨的挑戰,機遇與對策各方面進行為期三天更深層次並具有建設和戰略性的探討,期待您的參與。

會議結構

若您對峰會有更多要求,請撥打021-6045 1760與我們聯繫,謝謝理解和支持!
我們期待與貴單位一起出席於2017年5月17-19日在上海舉辦的第七屆中國國際新能源汽車論壇2017,以利決策!
想瞭解詳細內容,請登陸官方網站:
連絡人:Summer(謝清)
電話:+86 21-6045 1766
傳真:+86 21-6047 5887
郵箱: market@ourpolaris.com

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

傳亞光供應車載鏡頭於美系電動車供應鏈

市場傳出,光學零件大廠亞光車載鏡頭於 2016 年第四季打進美國電動車大廠供應鏈,去年11月已開始出貨,單月出貨量約2-3萬顆, 2017年出貨則可望進一步放量成長,為營運增添動能。

對此,亞光董事長賴以仁表示,不評論客戶訂單,但他強調,今年在包括車用、虛擬實境 (VR) 等運動攝影機方面,訂單表現都不錯,消費型相機的需求亦有回溫,預估今年營收及獲利表現可望優於去年;同時,今年美國 CES 展中受矚目的先進駕駛輔助系統 (ADAS),亞光布局雷射測距應用於瞄準儀的時間已久,而在雷射測距及 HUD(抬頭顯示器)方面,也都是 ADAS 應用的重要零組件。

據悉,亞光出貨美國電動車廠的車載鏡頭主要為雷射測距,用於自動駕駛系統;除美國電動車市場外,亞光的車載鏡頭也間接切入歐洲車廠,今年布局重點包括 ADAS 等重要零組件。

亞光去年全年營收 179 億元,年減 1.6%,惟受惠產品組合優化,獲利優於營收表現,其去年前三季稅後淨利 2.97 億元,每股盈餘1.06元,已優於 2015 年全年表現。

(本文內容由授權使用)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

昶洧將於桃園建電池包場,望2018可推首款量產車

昶洧日前舉行法說會說明近期電動車發展成果與展望,公司董事長沈瑋表示,即將在桃園觀音興建電池包廠,並預計第一台試製樣車 (Beta Car) 可在今年三月出爐,最快 2018 年底發表首款量產車。

針對電動車研發近況,沈瑋表示,公司測試路車 (Alpha Car) 進入路測階段,目前已測試 200 多次,仍持續地蒐集路測數據進行分析,最佳測試風阻係數為 0.23,比 FF 推出的新車還低,是目前風阻係數最低的電動轎車。

他也指出,公司與大陸贛州發改委合作的第一期廠房已建設完成,預計四月份設備將會安裝完畢,而贛州廠試製車間也已完工並開始運作。此外,也已與西班牙巴塞隆納區洽談合作建廠計劃,蘇格蘭政府也看中昶洧技術並邀請去當地設立研發中心,顯見公司卓越的技術已深獲大陸與歐洲政府的看重並積極提出合作的方案。

昶洧也指出,公司計劃在台灣桃園觀音鄉自有土地 2 千多坪上設置電池包廠,另投資新台幣 3 億元建廠房及購置機器設備,因技術均為自有研發技術及自有土地,預計毛利率相對較高,有助於業務開展,電池包量產銷售後可維持台灣地區的營運開支所需;電池包廠將於今年動工,年產量約計 8,000~12,000 片,這部分雖然只能供應贛州昶洧新能源公司十分之一所需,但不會全數供應自家車廠,仍會考慮部份出售給其他車廠。

關於昶洧新車展示及上市計畫,沈瑋則指出,除了一至二月在中國贛州廠展示外,三月底會在香港展出,待香港展覽完成後預計將會安排來台灣展示。昶洧也預計於今年九月時參加法蘭克福車展, 2018 年三月份參加日內瓦車展,超級跑車廠預計今年底完成建廠作業;計畫超級跑車及轎車於今年下半年即可開始預購。

在製車技術方面,沈瑋表示,昶洧輕量化技術是全球獨一無二,目前已申請專利,創新底盤及電池包等多項核心技術都是自行研發,且使用專有航太模擬器進行數據模擬與測試,故節省相當多製作模具的費用,因此領先其他廠商且在開發經費上較其他廠商減少成本約 40~60%,主因是大多數的技術都是自有的。

沈瑋並表示,昶洧一直戮力於發展新興電動車產業,尤其以自行研發的電池管理系統、熱管理系統及創新底盤設計等三大核心專業技術,期許帶動台灣電動車產業供應鏈的升級,惟受台灣保守的投資環境及相關電動車產業政策不明確與未積極推動下,對於公司有心從海外募集資金回流於台灣設廠,提升台灣電動車產業發展的計畫,屢受阻礙;為了不影響公司中、長期發展及創造股東的利益,董事會已通過出售所投資之Flash Hope Holdings Limited部份股權,以獲取資金進行後續投資計劃,且昶洧所屬企業在海外募資的成果截至目前為止,在大陸已募得人民幣 12.3 億元(合台幣56.58億元),將有助全力發展當地的電動車事業。

(本文內容由授權使用。圖片出處)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

網頁設計最專業,超強功能平台可客製化

中國將要求新能源車業者追蹤回收動力電池

電動車、插電式油電混和車等被稱為「新能源車」的車款均需配置車用動力電池,使電池與新能源車的產業發展密切相關。隨著中國新能源車消費量提高,電池汰役回收的需求很快就會浮上檯面;中國工信部因而規定,未來新能源車業者須追蹤、回收所使用的動力電池。

拓墣產業研究所研究,中國的新能源車輛產業涵蓋一般家用車到大眾交通運輸,在政府的積極補貼下,自2015年起就在全球汽車市場上佔有一席之地。2016年的新能源車全球佔比更超過了50%,是全球最大市場;中國的車商比亞迪(BYD)的全球市佔率也有14%之多。

龐大的新能源車市場,意味著龐大的車用電池用量。一般而言,純電動車的車用電池會在蓄電力降至七成左右時汰換,使用期限大約是五至七年不等;因應及將到來的車用電池汰換潮,中國工信部下發《新能源汽車生產企業及產品准入管理規定》,規定自2017年7月1日起施行回收辦法。

根據規定,擁有開發新能源汽車資格的廠商方可生產新能源汽車,且須負責新能源車生產之管理、各式認證申請、確保合格、售後服務等。售後服務須包括產品質保,包括電池等零組件的回收機制。

規定第十八條指出:「新能源汽車生產企業應當在產品全生命週期內,為每一輛新能源汽車產品建立檔案,跟蹤記錄汽車使用、維護、維修情況,實施新能源汽車動力電池溯源信息管理,跟蹤記錄動力電池回收利用情況。」意味車商須建檔追蹤動力電池的實際狀況,以在必要時提醒回收。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

※教你寫出一流的銷售文案?

中國大陸電動車價格遭砍,影響股價

韓國同意美國佈署薩德飛彈防禦系統之後,頻遭中國報復,之前韓國電動車電池商遭到鎖定,被踢出中國補助名單之外。近來北京又出新招,據傳中國電動車商可能要求電池供應商砍價35~40%,韓商更難獲利,電池大廠三星SDI (Samsung SDI) 聞訊一度重挫 4%。

嘉實全球贏家系統報價顯示,台北時間 19 日中午 11 點 26 分,三星SDI股價大跌 4.44%、報 107,500 韓圜。另一韓國電池廠 LG Chem 也挫低 1.29%、報 268,000 韓圜。

巴倫 (Barron’s) 18日報導,摩根士丹利(大摩)分析師Shawn Kim報告稱,中國高工產業研究院宣稱,部分中國電動車商要求電池業者,今年電池價格下砍35~40%。大摩中國分析師Jack Lu認為,中國電池商大砍價格之後,仍有可觀獲利,此一方案可望繼續推動,如此一來,或許會壓縮三星 SDI 毛利。

中國處處設限,電池大砍價,北京又打算把合格電池廠的生產門檻一口氣增至8GWh,韓商生存空間大受打壓。不只如此,三星SDI供應三星Galaxy S8電池的利多,市場也反應過頭。大摩估計S8對三星SDI營收貢獻只有 4~6%。

美國、南韓去(2016)年7月宣布在韓部署「薩德」(THAAD) 反導彈系統之後,中國就開始積極抵制南韓,車用電池大廠LG Chem、三星SDI (Samsung SDI)首當其衝。中國工信部(MIIT)最新公布的第五批新能源汽車推薦目錄中,將內建LG Chem、三星SDI電池的電動車全部剔除。也就是說,所有內建韓系電池的新能源車,都已不再符合北京政府的推薦標準。

Maeil Business News Korea、Business Korea等外電2日報導,在工信部最新列出的493款新能源車推薦名單當中,沒有一款內建LG Chem、三星SDI的車用電池。

巴倫 (Barron’s)、BusinessKorea報導,中國工信部去年11月22日發布《汽車動力電池行業規範條件》修正草案,有意把合格電池廠的生產門檻,從 0.2GWh 至 8GWh,等於一口氣提高 40 倍之多。這也是向廠商喊話,若不在中國生產,就別想做中國生意。

韓媒認為,北京當局此舉是要阻止韓商跨入中國市場,原因之一是要報復南韓和美國合作,佈建薩德 (THAAD) 飛彈防禦系統;另一可能是陸電池廠缺乏補助,政府排除外商競爭,保護本國產業。8GWh 電池產能可供13萬輛純電動車使用,當前 LG Chem 南京廠產能只夠5萬輛電動車使用,三星 SDI 西安廠則可供 4 萬輛電動車使用。據稱符合 8GWh 規定的業者只有兩家,其中之一是陸廠比亞迪 (BYD)。

(本文內容由權使用。圖片出處:Pixabay CC0)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※別再煩惱如何寫文案,掌握八大原則!

※產品缺大量曝光嗎?你需要的是一流包裝設計!

樂視陷財務危機,法拉第未來的未來如何?

由中國樂視投資的美國電動車公司法拉第未來(Faraday Future),因受樂視限於財務困境牽連而傳出危機,執行長也已在美國消費型電子展(CES)前夕請辭。外界對於法拉第未來的發展並不樂觀。   在美國賭城舉辦的2017年消費性電子展 CES 上,法拉第未來在展示最新概念車 FF91 時,自動控制功能失靈,留下觀眾一片錯愕。加上近期的財務風波,外界因此對法拉第未來的評價大打折扣。前陣子美國高級研發副總裁 Sampson 才承認法拉第未來有財政上的困難,為了在 CES 上呈現 FF91 ,內華達的工廠因而被迫停擺。   對於外界的質疑聲浪,法拉第未來一直在社交媒體上和外界信心喊話,公司內部高層向Business Insider透漏,公司債台高築,單單缺欠供應商的債務就有 3 億美元。而在仍不清楚資金流向的情況下,樂視創辦人賈躍亭仍持續給予供應商保證,並持續消耗手上握有的資金。   現階段來講,資金是法拉第未來面臨最大的問題。雖然法拉第未來在去年有募資到十億美金的可轉換債券,但中國政府因擔心人民幣大量流出,因此限制海資金的外溢;內情人士對美國媒體Business Insider 透漏,若在未來的 60 天內,法拉第未來若無法將資金移出中國,供應商最終將迫使公司破產。

(首圖來源:)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

受樂視影響,法拉第縮小工廠規模

根據路透社的報導,中國影視廠商樂視網旗下子公司,豪華電動車新創公司法拉第未來(Faraday Future),已經決定縮減在美國興建車廠的規模。組裝廠規模將由原來佔地300 萬平方英尺,大幅縮減至65 萬平方英尺,生產車款數量亦會由7 款大減至2 款。

報導指出,法拉第曾於2015 年表示,總投資金額達到13 億美元,在內華達州北拉斯維加斯的組裝廠年產可高達15 萬輛,而且2017 年底投產。不過根據目前的狀況顯示,法拉第目前該工廠得預定產能每年將少於1 萬輛,而且還必須延後到2019 年才開始正式量產。

由於受到前一段時間母公司樂視網財務困境的影響,法拉第工廠一度傳出高層離職、欠供應商貨款、甚至是停工歇業的消息。雖然,在母公司獲得人民幣168 億元的資金援助後,工廠重新啟動。不過,可能也是因為這樣的原因,使得樂事網不得不宣布縮小其工廠的規模與未來的生產能量。

在2017 年的CES 展上,法拉第推出首輛量產車款FF91 之後,由於具備高度智慧連網功能,以及搭載時下最熱門的自動駕駛技術。並且全車配備3D 雷達、10 個高感度相機、13 個長距離和短距離雷達以及12 個超聲波感測器,可以說性能超越市面上包括賓利、法拉利和特斯拉的所有電動車。但即便如此,分析師仍認為,法拉第FF91 的推出依舊是遠水救不了近火。

有統計指出,未來幾年內,樂視網在法拉第汽車上的資金缺口約在人民幣460 億元以上。而根據樂視網在2017 年1 月13 日發布的公告表示,引入包括融創中國在內的多家戰略投資,投資金額為人民幣168 億元的資金,則將汽車業務排除在外。換言之,樂事網的汽車豪賭,未來還需要再另籌資金。所以,在FF91 售價高達人民幣200 萬元,再加上樂視網資金仍有隱憂的情況下,法拉第工廠能不能順利在2019 年生產、上路,恐怕還有變數。

(合作媒體:。圖片出處:Faraday Future)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

必翔取得首款台產電動汽車生產執照

台灣的電動機車品牌Gogoro已經能從台北一路騎到高雄,還將進軍歐洲市場。而台灣首款本地生產的電動汽車也正式領取生產執照,將由在地廠商必翔集團負責產銷。

必翔集團在台成立三十餘年,早期曾投入農業機械研發,近期則以電動代步車、醫療用車等車款代工為主要業務。看好全球電動車市場蓬勃,必翔於2011年正式成立必翔電動汽車公司,並獲得中國廠商比亞迪(BYD)的肯定,合作發展電動汽車技術。

必翔在宜蘭縣建有電動汽車組裝廠,客戶行銷歐洲。日前,必翔已成功取得台灣首張電動汽車生產執照,預計將在今年第三季前量產問世。

除電動汽車公司外,必翔集團旗下另一子公司必翔電能為磷酸鋰鐵電池廠,廠房位於新竹,每月可生產100萬顆18650鋰鐵電池,集團整體可形成電動車產業的垂直整合。為提供日漸提升的電動車用電池需求,新竹廠房將陸續擴產到目前規模的10倍;公司也已申請掛牌上市,正在等待審核。

必翔集團也積極投入再生能源發展。必翔電動汽車的,由台灣永鑫能源負責開發、雲豹能源科技出資,完全採用美商First Solar的太陽能板,是First Solar在亞洲規模最大的屋頂型太陽能發電廠。

(照片:必翔公司廠房。來源:)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案